Analiza Sistemului Existent
Introducere
Secolul XXI este dominat de tendința din ce in ce mai amplificată a oamenilor de a fi conectați, de a se concentra pe produse, device-uri si alte servicii care le fac viata mai ușoară. In ziua de astăzi, oamenii se îndreaptă spre produse accesibile oricărui tip de utilizator, de la un pionier in domeniul tehnologiei până la un novice in sectorul tehnologic.
Prezenta lucrare se dorește a fi o soluție de lungă durată pentru firma de distributie de echipamente IT, COMPTECH SA si constă in proiectarea și realizarea unui magazin virtual pentru produsele comercializate de companie. Principalul motiv pentru care s-a dorit realizarea acestui sistem informatic îl reprezintă necesitatea companiei de a avea o metoda performantă de oraganizare și gestiune a comenzilor cât și consolidarea relațoilor cu clienții. In prezent, firma pentru care se dezvoltă aplicația, COMPTECH SA, deșine doar un site de prezentare iar clientul trebuie să se deplaseze până la un showroom sau să contacteze telefonic un operator pentru a afla informașiile necesare în legatură cu un produs pe care dorește să-l achiziționeze. Compania pentru care se dezvolta aplicația a recepționat potențialul unei platforme online pentru a gestiona vânzările într-un mod facil si de actualitate. Diversitatea magazinelor virtuale a crescut și se impun pe piață platforme web din ce în ce mai complexe astfel că, lucrarea de fața își propune să integreze generarea de soluții integrate specializate în mod direct prin intermediul magazinului online al companiei prin crearea unui sistem performant de filtrare a produselor comercializate. Soluția informatică va fi realizată cu ajutorul tehnlogiilor moderne de creare a unui site folosind-use de HTML pentru partea de front-end, PHP pentru partea de back-end si MYSQL pentru baza de date.
Obiectivul fundamental al aplicației constă în furnizarea de informații corecte, relevante și în timp util atât cliențiilor, cât și nivelelor operaționale specifice departamentelor firmei prin generarea de rapoarte, în scopul creșterii eficienței organizării companiei si a profitului.
Capitolul 1 – Studiul si analiza sistemului existent
1.1 Prezentarea succinta a unitatii economico-sociale
SC COMPTECH SRL este o firma de distribuție de echipamente IT înființată în București, în anul 2011, de către doi antreprenori : Banța Radu și Marin Sebastian. Compania a fost fondată în urmă unui proiect de antreprenoriat inițiat de cei doi fondatori, care în 2010, în urmă unui studiu de analiză pe piață de IT, au remarcat o nevoie acută în ceea ce privește filtrarea produselor din sfera componentelor IT. Piață locală de distribuție de echipamente hardware a cunoscut o mare amploare în ultimii ani creându-se astfel o legătură puternică între cerere și oferta. În prezent, se poate vorbi de un boom în industria IT din România: ofertele producătorilor de componente IT continuă o pantă ascendentă și s-au remarcat produse inovatoare în utimii ani, în cantități din ce în ce mai mari iar cererile consumatorilor urmează și ele un trend crescător. Produsele create de marile companii de IT& C au devenit mai fiabile, mai perfomante, mai diversificate cu scopul de a întruni nevoile utilizatorilor. Consumatorul, însă, este pus în situația de a alege, lucru care se dovedește a fi din ce în ce mai dificil, datorită cantităților impresionante de oferte din acest domeniu. Astfel, cei doi antreprenori, au dezvoltat o soluție pentru a rezolva problema alegerilor dificile, reprezentată prin COMPTECH SRL.
Din 2011, COMPTECH SRL s-a impus pe piață de distribuție de componente IT, adaptându-se cerințelor în schimbare ale clienților săi, oferindu-le posibilitatea de a achiziționa un sistem performant, la un raport direct proporțional de calitate-preț, dotat cu caracteristici individualizate în funcție de nevoile fiecărui client.
În prezent, rețeaua COMPTECH SRL administrează siteul de prezentare www.comptech.ro și cuprinde 2 showroom-uri, în București și Cluj. Dacă retailerii din România au integrat în produsele comercializate atât partea software cât și cea hardware, COMPTECH a mizat pe componentă hardware.
Portofoliul COMPTECH include:
Laptopuri & Tablete
Desktop PC & Monitoare
Componente & Periferice
Servere & Retelistica
În cei 3 ani de activitate pe piață, COMPTECH și-a construit un brand puternic, bine ancorat în percepția utilizatorului, respectând princiipile stipulate în misiunea, viziune și valorile companiei.
Misiunea COMPTECH:
Comptech se adaptează cerințelor clienților săi, și dorește să fie o platforma profesională care se diferențiază prin faptul că își ajustează constant modelul de afacere și sistemul de comunicare în cooncordanta cu cerințele de pe piață. Compania răspunde nevoilor tuturor categoriilor de clienți, scopul principal fiind oferirea de servicii de calitate și menținerea unei bune colaborări cu clienții săi.
Viziunea COMPTECH:
Compania urmărește să respecte cele trei principii de baza ale strategiei sale de afaceri, în vederea unei dezvoltări sistematice ale companiei. Viziunea companiei o reprezintă menținerea poziției de top de pe piață de distribuție de echipamente hardware. Că și obiective pe termen lung, COMPTECH își propune:
Cresterea constant a bazei de clienti
Imbunatatirea calitatii retelei de distributie
Consolidarea brandului la nivel national
Mentinerea si incheierea de noi colaborari cu furnizori din industrie
Cele trei coordonate principale pe care se bazeaza afacerea sunt:
cresterea gradului de cunoastere a cerintelor clientilor
selectare riguroasa in ceea ce priveste achizitiile si dotarile firmei
specializarea serviciilor oferite
Succesul companiei COMPTECH il reprezinta in primul rand, satisfactia clienteului. Firma considera ca intelegerea si cunoasterea aprofundata si mereu actualizata a cerintelor si nevoilor cat si o colaborare eficienta de ambele parti este cheia catre o afacere prospera. COMPTECH pune pe primul loc calitatea si isi asuma responsabilitatea pentru produsele comercializate.
Valorile COMPTECH
Integritate – Compania COMPTECH considera ca fara acest principiu de baza o activitate economica nu poate avea caracter profesional, intrucat o conduita integra este o conditie esentiala pentru incredere, constituind componenta cheie a unui mediu de afaceri eficace.
Orientarea catre client – Ascultarea si intelegerea nevoilor clientilor nostri sunt cheia pentru dezvoltarea de solutii cu adevarat inovatoare. Oriunde se afla clientii nostri, COMPTECH este acolo pentru sprijin si suport. Showroom-urile din Bucuresti si Cluj sunt aproape de clienti pentru a-i servi in cel mai bun mod posibil.
Promptitudine – Avand operatiunile in sectorul de distributie, COMPTECH are ca scop raspunderea in timp util solicitarilor clientilor, cu livrare imediata.
Confidentialitate – Compania se angajeaza sa nu divulge informatii confidentiale furnizate de client. Informatiile se stocheaza si se manipuleaza pentru a se asigura ca numai cei care sunt direct implicati sa lucreze cu aceste informatii au acces la acestea.
Responsabilitate – COMPTECH isi asuma responsabilitatea pentru produsele comercializate si pentru intreaga relatie cu clientii, precum si pentru tratarea cu cea mai mare atentie a bunurilor cerute de client pentru a fi transportate in siguranta.
1.2 Principalele activitati desfasurate in unitatea economica
COMPTECH pune la dispozitie clientilor sai o platforma profesionista, inovatoare si usor de utilizat specializata pe comercializare si distributie de componente IT.
Locul in sfera economica:
Furnizorii:
Principalii furnizori ai firmei COMPTECH ii reprezinta producatorii internationali si locali de componente IT, furnizorii de servicii de curerat, partenerii logistici si furnizorii de echipamente software.
Furnizori de componente IT:
AMD ( cel mai vechi furnizor si primul de entitate majora, bunurile acestuia reprezentand 35% din produsele comercializate )
ASROCK ( cel mai vechi furnizor pentru placi de baza )
ASUS ( furnizor exclusiv pentru componente laptopuri )
GIGABYTE ( furnizor exclusiv pentru componente periferice si accesorii PC )
GEIL ( furnizor nou, ofera exclusiv memorie RAM de tip DDR )
SC STK SYSTEM SRL ( primul furnizor de pe piata locala cu oferta de produse ce acopera toata gama comercializata de companie )
Furnizori de servicii de curierat:
FAN COURIER ( asigura transportul international atat rutier cat si aerian )
DPD ( servicii de livrare interna pentru clienti )
Parteneri logistici:
HOTEL INTERCONTINENTAL ( furnizor sala de sedinta pentru evenimente externe )
ATHENNE PALACE HILTON ( furnizor sala de sedinta pentru evenimente interne )
FRU-FRU ( furnizor servicii de catering pentru evenimente externe )
JERRY’S ( furnizor servicii de catering pentru companie )
Furnizori echipamente software:
MICROSOFT ( furnizor licente IT)
SIVECO ( furnizor de solutii IT si proiecte de consultanta )
Beneficiarii:
Datorita calitatii echipamentelor oferite, COMPTECH se bucura de beneficiari stabili, care au ajuns fideli serviciilor companiei datorita increderii dobandita pe parcursul anilor in brandul COMPTECH.
Beneficiarii COMPTECH se impart in doua categorii:
Beneficiari persoane fizice
Beneficiari persoane juridice. Pe acest segment compania detine contracte pe termen lung si furnizeaza echipamente IT urmatoarelor entitati juridice:
Fondul Monetar International – Romania
Inspectoratul General al Politiei
Institutul de Economie Agrara
Institutul de Cercetari Financiar Monetare "Victor Slavescu"
Romgaz S.A. – transport
Cercul Militar National
Colegiul Matei Basarab
Centrul Cultural – Otopeni
Primaria orasului Otopeni
Concurenta
Concurenta COMPTECH va fi analizata in functie de doua aspecte: mediul online si mediul offline.
Principalii concurenti din mediul online si care de altfel reprezinta si competitia directa sunt:
Network One Distribution – cel mai vechi si renumit distribuitor de componente IT, cu un portofoliu diversificat si furnizori de talie internationala.
Emag – magazinul online de IT cel mai complex din Romania. Este al doilea competitor dupa Network One Distribution, avand in portofoliu o gama larga de produse, o aparitie consistenta atat in mediul online, prin canale de comunicare multiple ( facebook, website,blog, serviciu clienti ) cat si in mediul offline prin cele doua showroom-uri din Bucuresti. Compania si-a creat un brand puternic in Romania si este detinuta de SC Dante International SA care, potrivit unui top realizat de Ziarul Financiar in editia din 9.12.2014, se afla in top 55 companii dupa afacerile din 2013.
PcGarage – magazinul online de IT care ofera in momentul actual cea mai buna experienta digitala pentru clienti, integrand un brand puternic in perceptia utilizatorului si consolidandu-si identitatea prin lansarea forumului MyGarage ce a creat o comunitate bine inchegata. Functionalitatea site-ului este asigurata de un admin complex ce permite prelucrarea unui volum mare de comenzi.
Evomag – magazin online de IT ce recent a inceput sa creasca pe piata, compania mizand pe produse cu preturi scazute riscandu-si astfel profitabilitatea pentru a creste cota de piata.
Sigmanet – magazin online cu vechime de peste 18 ani pe piata de IT&C care a scazut in volum de vanzari si proftabilitate, pierzandu-si cota de piata, dupa ce a fost achizionat de SC International Transactions & Services SA, fapt ce a condus la depozitionarea identitatii Sigmanet ca unul dintre liderii de pe piata de comercializare produse IT.
Principalii concurrenti din mediul offline sunt reprezentati de:
Altex, Domo, Media Galaxy, Flanco. Cele 4 companii trec la momentul actual printr-un proces de tranzitie, comercializand produse si in mediul online avand in vedere ca segmental de piata IT&C din mediul offline a scazut drastic in ultimii ani, datorita preturilor mai mari in comparatie cu preturile oferite de magazinele online, preturi impuse de altfel de costurile cu livrarile de echipamente atat pentru sediul companiei cat si pentru showroom-uri,magazine si depozite. Aceste entitati reprezinta in prezent competitia indirecta pentru firma COMPTECH.
Indicatori economici
Analiza principalilor indicatori economici care reflecta proftabilitatea companiei reflecta randamentul pozitiv al companiei in cei 3 ani de activitate. Urmatoarele tabele prezinta analiza situatiei financiare a firmei luandu-se in considerare veniturile, cheltuielile, profitul,cifra de afaceri si resursele umane.
Tab. 1.1 Indicatori din bilantul contabil
Tab. 1.2 Indicatori din contul de profit si pierderi
Tab. 1.3. Indicatori derivati din bilant
Graficul evolutiei principalilor indicatori se prezinta astfel:
Fig 1.1 Evolutia cheltuielilor totale in raport cu veniturile totale
1.3 Studiul sistemului de conducere
Structura organizatorica ierarhica si functionala determina modul in care rolurile, puterea si responsabilitatile sunt atribuite,controlate, precum si coodronate si sintetizeaza fluxul de informatie din intre diferitele nivelori de management. Structura de fata depinde de obiectivele si strategia COMPTECH, fiind o structura centralizata, unde stratul superior de management are cea mai mare putere decizionala si un control strict asupra departamentelor si diviziilor acestora asigurand transparenta si eficacitatate.
Organigrama firmei COMPTECH se diferentiaza prin numarul mic de subordonati care ii revin managerului, numarul nivelelor fiind mai mare de doua in piramida ierarhica.
Acest tip de organigrama se distinge prin urmatoarele avantaje:
-respecta sensul normal de scriere si citire de la stanga la dreapta;
-reprezinta clar diferitele niveluri de organizare;
-este compacta, redand complexitatea structurii de conducere.
Nivelurile ierarhice ale acestui tip de organigrama sunt ordonate de la stanga la dreapta, in sensul descrescator al importantei lor
Fișa postului
Directorul General
Are în subordine:
Directorul Economic.
Managerul Resurse Umane.
Directorul Marketing.
Directorul Logistică.
Directorul Tehnic.
Directorul Operatiuni Clienți.
Atribuții:
Stabilește obiectivele generale de dezvoltare ale firmei.
Aprobă bugetul și rectificările acestuia.
Identifică oportunități de afaceri.
Reprezintă firma în relațiile protocolare cu furnizorii, clienții și alte organisme/organizații cu impact real/potențial asupra rezultatelor firmei.
Asigură managementul firmei.
Asigură rețeaua de relații necesară dezvoltării activității firmei.
Directorul Economic
Are în subordine:
Departamentul Financiar
Departamentul Contabil
Atribuții:
Organizează, conduce și răspunde de desfășurarea în mod eficient a activității financiar-contabile a societății în conformitate cu dispozițiile legale în vigoare.
Asigură organizarea în mod eficient a integrității întregului patrimoniu al societății în conformitate cu dispozițiile legale în vigoare.
Organizează și coordonează contabilitatea operațiilor de capital și contabilitatea de gestiune în conformitate cu legislația în vigoare.
Urmărește respectarea principiilor contabile și ale evaluării patrimoniului.
Directorul Marketing
Are în subordine:
Managerul de produs
Departamentul de support tehnic si documentare
Atribuții:
Organizează ședințe, conferințe.
Organizează evenimente, târguri, expoziții ce au ca scop promovarea imaginii și serviciilor firmei.
Are cunoștințe de contabilitate (stocuri).
Participă la întâlnirile de afaceri
Interpretează și pune în aplicare strategia de marketing și planul de afaceri al companiei.
Directorul Logistică
Are în subordine:
Managerul Logistică Internă.
Managerul Logistică Externă.
Atribuții:
Coordonează activitatea depozitului societății din punct de vedere administrativ.
Coordonează și controlează permanent activitatea de depozitare, stocare, curățenie.
Are obligația să-și ducă la îndeplinire toate sarcinile de serviciu stabilite prin fișa postului, în cadrul timpului normal de lucru.
Planifică și coordonează necesarul de materiale și produse.
Directorul Tehnic
Are în subordine:
Echipa de dezvoltare-programare.
Atribuții:
Propune soluții tehnice departamentului care a inițiat proiectul.
Aprobă din punct de vedere tehnic soluția adoptată și termenele de execuție.
Aprobă și negociază prețurile serviciilor cumpărate de departament.
Director Operatiuni Clienți
Atribuții:
Reprezintă interfața dintre client și firmă.
Dezvoltarea și conducerea către o relație de bază cu clienții profitabili
Să anticipeze și să răspundă dorințelor clientului
Asigură o bună comunicare cu toate departamentele firmei.
Managerul Resurse Umane
Atribuții:
Planifică activitățile de resurse umane.
Organizează personalul departamentului de resurse umane.
Recrutează, intervievează și selectează angajați pentru posturile vacante.
Asigură interpretarea corectă și aplicarea politicilor de personal ale firmei.
1.4 Studiul sistemului condus
Principalele departamente ale companiei COMPTECH:
Departamentul Vanzari
Dept Vanzari se imparte in doua subderpartamente
Vanzari Retail
Este departamentul care se ocupa exclusiv de clientii individuali si firme de mici dimensiuni. Activitatile din cadrul departamentului presupun preluarea, procesarea și finalizarea comenzilor de produsele comercializate de companie. Angajatii departamentelui au rolul de a asigura asistenta tehnica pentu client in vederea unei alegeri optime de produse care sa fie in concodranta cu nevoile utilizatorilor.
Vanzari Corporate
Departamentul se ocupa exclusive cu cererile entitatilor juridice – companiile medii sau mari – care apeleaza la serviciile companiei in vederea unor lansari de licitatii, elaborari de oferte special si consultant specializata pe proiecte IT. Angajatii departamentelui au rolul de a asigura configurarea de solutii integrale complexe pentru beneficiari.
Departamentul Logistica
Include managementul de dotari si achizitii, gestiunea acestora si livrarea produselor intr-un interval scurt si optim. Serviciile de livrare sunt realizate in parteneriat cu doua firme care ofera servicii de curierat intern rapid, door-to-door, in Bucuresti, Cluj si in tara si servicii de curierat international pentru beneficiarii din straintate.
Departamentul Tehnic
Se concentreaza pe asigurarea calitatii si respectarea normelor tehnice pentru toate produsele companiei. Departamentul preia produsele cu defecte si mentine legatura cu reprezentantele producatorilor pentru a solutiona produsele intrate in service cu defecte sesizata in perioada de garantie sau post-garantie. Departamentul asigura si serviciile de ansamblare si configurare pentru toti clientii companiei.
Departamentul Relatii Clienti
Ofera sprijin și informații pentru a satisface cerintele individuale ale clienților. In cazul entitatilor juridice se asigura ca la rândul lor pot furniza informațiile necesare pentru clienții lor. Echipa de experti din cadrul companiei poate consilia cu privire produsul potrivit pentru afaceri in concordanta cu nevoile clientilor.
1.5 Studiul sistemului informational
1.5.1. Schema fluxului informațional aferent temei
1.5.2. Descrierea circuitului informațional aferent temei
Fiind o companie care se ocupa de commercializarea si distributia de echipamente IT, lantul de distributie, cu implicatia furnizorilor, este cel mai important in circuitul informational avand are numeroase și distincte trasaturi: insemne de comenzi pentru furnizorii de produse, fluxul de plati si cel al informatiilor ce se ofera la plata produselor catre furnizori. Semnalele comenzilor pe tot fluxul lanțului de furnizare variază în funcție de frecventa lor si de volumul produselor comandate.
Lantul de distributie al companiei Comptech SA consta in:
– un sistem fizic (mecanismul pentru mișcarea și înmagazinarea materialelor și bunurilor);
– demersul comercial pentru aprovizionarea și furnizarea resurselor cerute;
– procesele afacerii care definesc cum poate fi realizat operațional lanțul;
– măsurile pentru prezentarea standardelor de performanță și control al costurilor;
– organizare pentru planificarea și conducerea operației;
– planificarea dezvoltarii de aplicatii de sistem pentru optimizarea efectivității operațiilor și fluxului informatiei.
Pentru a sustine toata activitatea companiei, este necesara planificarea comercializarii de produse care trebuie sa vizeze urmatoarele aspecte:
stocul initial, curent si preconizarea cantitatii de produse pentru urmatoarele trei luni in vederea evitarii produselor inexistente in stocul magazinelor;
calitatea in raport cu pretul produselor achizionate de la furnizori;
cererile clientilor: identificarea produselor recurente, a celor mai cumparate dar si a celor mai putin cumparate pentru realizarea unui plan de vanzari sustenabil
Clientii reprezinta beneficiarul colectiv si cel mai important in cadrul firmei. In vederea optimizarii fluxului informational, compania vizeaza o desfasurare optima a relatiei dintre client si companie. Clientul plaseaza comanda care se directioneaza de catre operatori catre departamentul de vanzari . Acesta verifica disponibilitatea in stoc a produselor dorite de catre client si redirectioneaza raspunsul afirmativ sau negativ catre operatorii pentru relatii clienti care ulterior aproba comanda si se ocupa cu platile effectuate de catre clienti pe care le redirectionaza la departamentul vanzari si financiar-contabil.
1.5.3. Descrierea documentelor utilizate. Modelul conceptual al datelor (MCD).
In vederea sustinerii fluxului informational, in compania COMPTECH SA se folosesc mai multe documente atat cu character intern cat si extern, respectiv documente associate clientilor si furnizorilor si documente asociate firmei.
NOTA DE RECEPTIE SI CONSTATARE DE DIFERENTE (NRCD)
Reprezinta un document pentru receptia bunurilor aprovizionate, pentru introducerea in gestiune si inregistrare in contabilitatea firmei
FACTURA FISCALA
Este un documente care ajuta la decontarea bunurilor livrate si serviciilor prestate, pentru gestiunea cumparatorului si este inregistrat in contabilitatea furnizorului si cumparatorului.
Alte documente:
CONTRACT INDIVIDUAL DE MUNCA
STAT DE SALARII
Reprezinta un document pentru calculul salarial al unui angajt dar si al altor contributii sau sume datorate
1.5.4. Proceduri de prelucrare a datelor utilizate. Modelul conceptual al prelucrarilor(MCP).
Clientul realizează comanda la centrul de colectare (Bucuresti si Cluj) unde plata va fi efectuata pe loc si coletul preluat de departamentul de vanzari sau prin telefon.
Poate alege una dintre cele două servicii de livrare :
Serviciul Standard.
Serviciul Express.
Are la dispozitie doua modalitati de plata:
Numerar.
Plata cu card bancar.
Comanda se inregistrează si clientul primeste numar de comandă.
Comanda este preluata de un operator din cadrul departamentului de vanzări.
Operatorul transmite comanda catre reprezentatul firmei.
Reprezentatul firmei vine si ridica coletul (daca a fost contactat telephonic telefonic) si tot atunci se va efectua plata și se semnează documentul de transport (AWB).
Reprezentatul firmei preia coletul și se transmite un E-mail catre receptor cu data și ora livrarii.
1.5.5. Analiza critică a sistemului actual și identificarea neajunsurilor existente în funcționarea sistemului existent
În urma unei analizări a sistemului informatic s-a constatat că firma deține 20 de calculatoare ce rulează pe sistemul de operare Windows XP care nu mai primește update-uri deoarece a ieșit din perioada de suport și reprezintă un risc de securitate pentru toate departamentele firmei mai ales cel financiar unde daca un utilizator ar vrea sa pericliteze activitatile firmei poate exploata orice vulnerabilitate din sistemul de operare avand posibilitatea să obțină acces ca administrator iar din acel moment numărul de probleme care pot apare crește exponential.
In sistemul existent,toate tranzactiile derulate de cumparare de produse sunt efectuate manual ceea ce consuma timp si reduce din eficienta. Rapoartele sunt realizate manual si mentinerea lor fara a avea un sistem computerizat este foarte dificila. Totodata, orice client are la dispozitie magazinul pentru a colecta informatii despe produs sau pentru a le achizitiona, insa acest lucru duce la pierderea de clienti, avand in vedere ca pe piata de magazine IT, ponderea magazinelor virtuale a crescut exponential. Mai mult, nu exista nici un sistem informatic pentru gestionarea platilor, toate calculele fiind realizate manual astfel strecurandu-se erori umane care nu pot fi corectate cu usurinta. Compania nu dispune de un web site si o baze de date pentru managementul fluxului de informatii. Managementul informatiilor este realizat în fișiere de tip Excel sau Word ceea ce duce la mai multe probleme :
Fisierele Excel/Word poate fi folosit de un singur utilizator de pe un singur calculator, ceea ce ingreuneaza colaborarea dintre departamente
Orice fișier poate fi șters din greșeală și asta reprezintă un mare risc, pentru că se pot pierde informații importante.
Organizare slabă a datelor din punctul de vedere al posibilităților de căutare, filtrare și sortare.
Avantajul competitiv
Singurul magazin de comert electronic specializat pe furnizarea de componente hardware si generarea de sisteme integrale complexe in functie de preferintele clientului;
Detinerea de contracte pe termen lung cu furnizori de talie internationala precum AMD sau ASUS cat si cu furnizori locali cu vechime pe piata;
Capacitatea de a livra un volum mare de bunuri si asigurarea unui pret uniform a acestora;
Drepturile exclusive de re-vanzare si distibutie avand statut de distribuitor exclusiv pentru firma GEIL;
1.5.6. Direcții de perfecționare a sistemului actual
Avand doar 4 ani de activitate, procesele de achizitie produse, de distributie si de operatiuni interne, compania COMPTECH SA vizeaza o transformare a sistemului informational. COMPTECH isi propune sa devina unica companie din Romania care ofera solutii integrale specializate in domeniu, direct prin intermediul propriului sau magazinului online, la un click distanta. Site-ul COMPTECH vrea sa se distinga prin filtrarea produselor comercializate, oferirea de imagini reale si detalierea specificatiilor fiecarui produs in parte, sis a fie o platforma usor de utilizat pentru orice client.
Compania are nevoie de o soluție integrată, automatizată care să ofere:
Proiectarea unui site web care sa aiba dubla functionalitate: pentru utilizator si pentru firma. Functionalitatea pentru utlizator este definita de o interfata usor de utilizat, navigarea rapida si serviciu de suport client integrat pe platform web. Functionalitatea pentru firma consta in principal in organizarea eficienta a datelor cu privire la clienti, furnizori si operatiuni interne prin crearea de functii de cautare, filtrare si sortare in timpi optimi.
Redundanta datelor prin implementarea soluției pe un server dedicat alături de o soluție RAID, pentru maximizarea securitatii datelor, si un back-up programat zilnic pentru baza de date.
Functii avansate de generare rapoarte de activitate
La nivelul operatiunilor interne ale firmei, care vizeaza exclusive relatia dintre furnizori-produse-firma, urmatoarele etape au nevoie de imbunatatiri:
Planificarea lantului de furnizare prin imbunatatirea:
Realizarii si cumpararii de tehnologii-suport;
Proiectararii retelei de furnizare;
Optimizarii lantului de furnizare.
Imbunatatirea planificarii lantului de furnizare se poate gestiona cu usurinta prin dezvoltarea unei interfete computerizate care sa ajute la organizarea rezultatelor acestui process.
Imbunatairea fazelor proceselor de procurare care constau in:
Selectarea furnizorului, bazata pe pretul, calitatea si volumul produselor – furnizorii sa detina o baza de date computerizata
Managementul ofertei si contractului.
Imbunatatirea procesului de comercializare a produselor:
Computerizarea programarii productiei;
Inregistrarea indicatorilor cheie de performanta;
Controlul calitatii produselor.
Planificarea distributiei:
Identificarea cheltuielilor operationale
Managementul inventarului:
evaluarii metodelor de comercializare si costurile aferente;
managementul stocului;
inventarierii fizice .
Managementul depozitarii:
planificarea si procesarea recepției bunurilor;
depozitarea și fluxul direct;
Infiintarea unui department IT impartit in 4 subdepartamente in cadrul companiei:
Programare
Este responsabil pentru crearea de noi programe pentru organizatie. Programatorii care lucrează pentru companie creaza programe care sunt specifice nevoilor organizatiei. Acesti programatori nu creează un produs pentru uz comercial sau care urmează să fie vândut de catre organizație. Programatorii din companie pot crea un program pentru a rula o piesă de echipament din fabricație, pot realiza un inventar, cat si sa proceseze comenzi de lucru avand obligativitatea de a finaliza orice sarcină de care organizatia are nevoie.
Site-ul companiei
Programatorii din cadrul companiei proiecteaza structura site-ului, scriu codul de programare si testare pentru posiblitati optime de utilizare. Instalarea unui program de server web numit Apache pentru gestionarea comenzilor si a bazei de date cu clienti.
Suport Tehnic
Ofera sprijin pentru utilizatorii de echipamente IT din cadrul companiei. Acesta poate include instalarea de software nou, reparatii hardware, instalarea hardware nou, depanare probleme și formarea angajaților pentru folosirea programelor software noi. Infiintarea unui Help Desk IT pentru a ajuta angajatii cu probleme legate de echipamentele pe care lucreaza.
Administrare
Este responsabil pentru instalarea și configurarea rețelei de calculatoare in companie. Profesioniștii IT care lucrează în această calitate se asigura că reteaua funcționează corect si ca toti angajatii au capacitatea de a comunica prin Internet și intranet. Angajatii specializati in tehnologia informatiei sunt insarcinati cu depanarea și repararea sistemelor in cazul unor defectiuni.
Capitolul 2. Proiectarea de ansamblu a sistemului informatic
2.1. Obiectivele și oportunitatea aplicației informatice
Din dorinta de a fi lider pe piata de echipamente hardware, firma Comptech SA trebuie sa se mentina constant in pas cu noile tehnologii informatice astfel ca se deduce nevoia de realizare a unei aplicatii web care sa poata fi accesata de dispozitive precum calculatoare,laptopuri, tablete sau smartphone-uri, usurand astfel plasarea unei comenzi pentru client si avand mai multe beneficii pentru firma , precum gestiunea bazei de date cu clienti sau monitorizarea retelei de distributie si a transportului.
Totodata o aplicație web a devenit o necesitate si ofera anumite beneficii
Cresterea interactiunii cu clientii – prezentarea produselor oferite la un standard cat mai inalt si respectarea cerintelor utilizatorilor
Modelul de lucru devine mai eficient – informatiile oferite de catre site legate de produse aduc un plus timpului castigat atat de client cat si de angajatul firmei
Feedback din partea utilizatorilor – reprezinta o metoda de a avea profit maxim deoarece utilizatorul isi exprima parerile legate de produsele existente dar si dorinta de a adauga produse noi
Reputatia firmei – un site usor de utilizat poate creste rapid modul in care este vazuta firma de catre clienti
2.2. Locul aplicației informatice în sistem
Aplicația web gandita pentru firma va avea un loc central in activitațile firmei, dezvoltarea aplicației vizand in principal proiectarea solutiei de informatizare avand in vedere coerenta datelor si relatiilor dintre acestea.
2.3. Definirea situațiilor (rapoartelor) finale
Rapoartele de produse vor contine date referitoare la cererea clientilor asupra unui anumit produs
Rapoartele de istoric comenzi vor contine date referitoare la numarul de comenzi plasate de catre clienti intr-o anumita zi, luna respectiv an
2.4 Modelarea datelor și modelarea prelucrărilor (model conceptual, logic și fizic)
Tabel Client
IDClient ( Tip – Numeric, Lungime – 10, Cheie Primara)
Nume ( Tip – Varchar, Lungime – 50 )
Prenume (Tip – Varchar, Lungime – 50 )
Adresa (Tip – Varchar, Lungime – 100 )
Oras (Tip – Varchar, Lungime – 50 )
CodPostal (Tip – Varchar, Lungime – 30 )
E-mail (Tip – Varchar, Lungime – 30 )
Tabel Produs
IDProdus ( Tip – Numeric, Lungime – 10, Cheie Primara)
NumeProdus ( Tip – Varchar, Lungime – 100 )
DescriereProdus ( Tip – Varchar, Lungime – 100 )
PretProdus (Tip – Numeric, Lungime – 30)
Cantitate (Tip – Numeric, Lungime – 20)
Imagine ( Tip – Imagine )
CodCategorie (Tip – Numeric, Lungime – 10, Cheie Secundara)
Tabel Categorii
IDCategorie (Tip – Numeric, Lungime -10, Cheie Primara)
NumeCategorie (Tip – Varchar, Lungime – 100 )
DescriereCategorie ( Tip – Varchar, Lungime – 100)
Tabel Cos
IDCos (Tip – Numeric, Lungime – 10, Cheie Primara)
NumeProdus (Tip – Varchar, Lungime -100 )
Cantitate (Tip – Numeric, Lungime – 10)
Pret ( Tip – Numeric, Lungime – 30)
CodClient ( Tip – Numeric, Lungime – 10, Cheie Secundara)
Tabel Factura
IDFactura (Tip – Numeric, Lungime – 10, Cheie Primara)
NrFactura ( Tip – Numeric, Lungime – 10)
DataFactura (Tip – Date)
Tabel Comenzi
IDComanda ( Tip – Numeric, Lungime – 10, Cheie Primara)
CodProdus ( Tip – Numeric, Lungime – 10, Cheie Secundara)
CodClient ( Tip – Numeric, Lungime – 10, Cheie Secundara)
CodFactura ( Tip – Numeric, Lungime – 10, Cheie Secundara)
CodAngajat ( Tip – Numeric, Lungime – 10, Cheie Secundara)
Tabel Angajat
IDAngajat ( Tip – Numeric, Lungime – 10, Cheie Primara)
Nume (Tip – Varchar, Lungime – 50)
Prenume ( Tip – Varchar, Lungime – 50)
2.5 Diagrama Entitate-Asociere
2.6 Alegerea tehnologiei de prelucrare (stabilirea platformei hardware, software și de comunicații)
Alegerea unui SGBD care să fie nu numai compatibil din toatepunctele de vedere cu sistemul în care va urma sa se programezeaplicația informatică este de mare importanță totodată aceasta relație între cele două oferind și calitatea și simplitatea folosirii de zi cu zi aaplicatiei.
SGBD-ul ales pentru aplicatie
Pentru dezvoltarea aplicației s-a optat pentru Sistemul de Gestiune a Bazelor de Date Microsoft SQL, datorită platformei stabile șimamagementului facil și exploatării în condiții de securitate. Un altmotiv pentru alegerea acestui SGBD este acela că firma deține înprezent o unealtă de gen CRM de la Microsoft numită NAVISION (sauMicrosoft Dynamics NAV), care are deasemenea ca SGBD la bază,Microsoft SQL, iar dorința conducerii firmei dorește ca în viitor să fiedezvoltat și un modul pentru crearea unei punți de legătură întreaplicația ce urmează a fi dezvoltată și NAVISION. Prin aceastafirmă urmărește că atât aplicația cât și NAVISION să beneficieze deaceleași informații referitoare la clienții firmei și la detaliile defacturare, aceste detalii fiind introduse o singură data în sistem.
Limbajul de programare
Aplicația care urmează a fi proiectată și programată va folosi ca șiplatformă software din punctul de vedere al sistemului de operare Microsoft Vista / XP. Dar privind la faptul că platform limbajului de programare este o platforma care poate fi implementată practic peorice sistem de operare, portarea aplicației de pe un server bazat peWindows la unul bazat pe Unix nu va fi o procedură foarte complexă.Aplicația va necesita pe langă accesul la un server cu baza de date Microsoft SQL și de platformele PHP și APACHE instalate și configuratepentru ca aplicația să poata fi accesată practic de oricine, printr-un usersi o parolă.Organizarea bazei de date va fi facută conform specificațiilorcelor trei forme normale. Nu in ultimul rând se va urmari ca baza dedate să aibe o structură logică pentru a facilita accesul la informațiile stocate în ea în cel mai scurttimp. Se va avea în vedere și structurarea tabelelor astfel încat elerelationeze intre ele.Aplicația va avea la baza de un limbaj de programare largraspandit, el apartinand platformei WEB fiind foarte asemanator insintaxa cu C++. Limbajul PHP ofera o gama larga de functii predefinitedar ofera si posibilitatea de a putea crea functii si clase conformmetodologiei de programare Orientata Obiect.PHP este un limbaj de programare destinat în primul rândInternetului, aducând dinamică unei pagini de web. Este unul din celemai importante limbaje de programare web open-source și server-side. PHP a parcurs o cale lungă în decursul ultimilor ani. Dezvoltarea până la nivelul unuia din cele mai proeminente limbaje care dirijează Web-ul nu a fost o sarcină ușoară. PHP este simplu de utilizat, fiindun 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țiide sine stătătorare. Probabil una din cele mai importante facilități alelimbajului este conlucrarea cu majoritatea bazelor de date relaționale,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 laUNIX, Linux, Windows, sau Mac OS X și poate interacționa cumajoritatea servereler web.
2.7. Estimarea necesarului de resurse și a calendarului de realizare
Resurse Hardware
Pentru accelerarea procesul de proiectarea a sistemului informatics vor fi necesare 5 computere dotate cu procesoare de ultimă generație, Intel i7 sau echivalent, cu capacitate 8GB Ram și 500 GB HDD, care sa functioneze in paralel.
Resurse software
Ca și resursă software este necesar ca fiecare computer să fie dotat cu un sistem de operare Microsoft Windows 8.1, alături de porgramele ce vin la pachet cu închieriea serverului dedicat aplicației și bazei de date ce constau in MySQL și serverul APACHE cu suport pentru PHP.
Resurse umane
Un inginer proiectant pentru Baza de Date, un inginer proiectant pentru punerea la punct al ieșirilor / intrărilor, un inginer proiectant pentru clasele / modulele aplicației, un programator, un tester.
Resurse financiare
Se estimează o suma de proiectare / programare / implementare de 30.000euro.
Calendarul de realizare
Realizarea bazei de date: o lună.
Dezvoltarea produsului software: trei luni
Implementarea soluției: o lună
Testarea și lansarea: o lună
Capitolul 3. Proiectarea de detaliu a aplicatiei informatice
Definirea obiectivelor aplicatiei informatice
Scopul principal al aplicației este de a ușura munca de gestionare a datelor utilizatorilor care cumpără de pe site-ul online al firmei contractoare cât și de a optimiza procesul de gestionare al produselor comercializate dar și o ținere în evidență mai performantă a proceselor de intrare-ieșire în cadrul platformei online.
Utilizarea funcționalităților din cadrul aplicației (inserare, modificare, ștergere, căutare) sunt accesibile pentru orice categorie de utilizator și nu necesită cunoștințe tehnice avansate. Astfel că, de la consultantul financiar până la managerul firmei, aceștia pot accesa oricând datele financiare prin intermediul aplicației. Tododata, aplicația ușurează în mare parte munca de contabilitate si finanțe, întrucat, genereaza date în timp real, care sunt stocate direct în aplicație.
Datele cumpărătorilor sunt procesate automat iar comenzile acestora sunt stocate pe platformă, aplicația având capabilitatea de a genera rapoarte, un instrument de gestiune necesar pentru firma, pentru a-și contabiliza afacerea și pentru a verifica anumite date precum stocul produselor, vânzările particularizate pe fiecare produs în parte. Aplicația necesită logare din partea utilizatorului, astfel că depinzând de funcția fiecărui angajat, se pot genera username-uri si parole diferite, pentru a fi în acord cu normele de securitate.
Meniul principal are integrate butoane prin intermediul cărora se pot accesa diferite module ale aplicației: produsele comercializate, categoriile de produse, comenzile utilizatorilor, rapoarte. Fiecare categorie conține submeniuri cu formulare (pentru inserare, modificare, stergere date) în vederea ușurării procesului de gestionare a aplicației.
3.2. Proiectarea logica si fizica a iesirilor
Raportul de produse – comenzi
Fig. 3.0 Proiectarea iesirilor in functie de produs
Ieșirile sistemului informatic vor avea în componență rapoarte generate pe baza selecției unui produs din lista acestuia.
Denumirea, categoria, prețul, stocul și numărul total de comenzi vor fi afișate într-un raport de produs, ce detaliază numărul si statusul comenzii, cantitatea de produs comandată, datele de livrare ale clientului și totalul comenzii.
Codul Sursa
$sql= "SELECT * FROM produse
WHERE id='".$pid."'";
$query=mysqli_query($conn,$sql);
$prod=mysqli_fetch_array($query);
$categorie=mysqli_fetch_array(mysqli_query($conn,"SELECT * FROM `categorii` WHERE `id`='".$prod['categorie']."' "));
Raportul de comenzi in functie de zi, luna, an
Fig. 3.1 Proiectarea iesirilor in functie de data
Ieșirile sistemului informatic vor avea în componență rapoarte generate pe baza comenzilor plasate într-o anumită zi, lună sau an. Selectând anul, luna sau data dorită, sistemul va genera raportul comenzilor aferente anului lunii sau datei alese.
Codul Sursa:
if ($_GET['an']!="") {
$sql="SELECT * FROM `comenzi` WHERE `data`>='".$dela."' AND `data`<'".$panala."'";
$query=mysqli_query($conn,$sql);
$totalcomenzi=mysqli_num_rows($query);
echo '<table class="tabrapoarte">
<tr><td class="th2"> Data: '.$_GET['an'].'-'.$_GET['luna'].'-'.$_GET['zi'].' <br />
Comenzi ('.$totalcomenzi.') </td> </tr>';
while ($comanda=mysqli_fetch_array($query)) {
echo '<tr><td class="tdtab"><a href="?p=admin&tab=editcom&com='.$comanda['id'].'"> Comanda nr #'.$comanda['id'].' – '.makeDateTime($comanda['data']).'</a></td></tr>';
}
3.3 Proiectarea logica si fizica a intrarilor
Fig. 3.2 Proiectarea intrarilor
Clientul își creaza un cont, alege produsul dorit, îl adaugă in coș și trimite comanda dupa completarea datelor de livrare, plata se va face numerar la primirea coletului.
Codul Sursa:
if ($produs['stoc']>0) {
$dejaincos=mysqli_fetch_array(mysqli_query($conn,"SELECT COUNT(*) FROM `cos` WHERE `user`='".$user."' AND `produs`='".$produs['id']."'"));
if ($dejaincos['0']>0) {
$sql="UPDATE `cos` SET `cantitate`=`cantitate`+1 WHERE `user`='".$user."' AND `produs`='".$produs['id']."'";
mysqli_query($conn,$sql); }
else {
$sql="INSERT INTO `cos` (`id`, `user`, `produs`, `cantitate`) VALUES (NULL, '".$user."', '".$produs['id']."', '1');";
mysqli_query($conn,$sql);}
}
3.4. Proiectarea Interfetei
Fig. 3.3 Proiectarea Interfetei
Pentru a avea o interfață cât mai accesibilă site-ul va dispune de un meniu de navigare ce conține link-uri către paginile de Autentificare, Contul meu, Cos de produse si Contact.
Aceasta va conține și o listă de categorii cu produse, ce vor genera pagina aferentă categoriei și o galerie de produse plus filtrele necesare.
Fiecare pagina de produs va conține o pozș, o descriere, opținea de a vedea prețul și disponibilitatea lui respectiv o serie de caracterstici specifice acestuia.
Acesând butonul Autentificare utilizatorul va trebui să își introducă adresa de e-mail și parola alesa sau daca acesta nu are un cont creat are opțiunea de a își crea cont pentru a putea plasa comenzi.
Accesând butonul Contul meu utilizatorul va avea posibilitatea de a vedea datele de contact si adresa de livrare a acestuia plus modificarea parolei alese. Istoricul de comenzi va fi afișat în această pagină incluzând detalile comenzii selectate.
Pagina de Contact va conține programul de lucru, numărul de telefon pentru a plasa o comanda si telefonic, apoi adresa si harta showroom-ului.
3.5 Proiectarea bazei de date
Analiza datelor reprezinta începutul pentru realizarea aplicațiilor cu baze de date, schemele conceptuale ale datelor trebuie realizate pentru analiza acestora.
Datele si legăturile se pot vizualiza ajutându-ne de modelul conceptual. Schema descrie natura și felul în care se pot utiliza datele aplicației.
Modelul conceptual pentru noua aplicație făcută pentru CompTech SRL este următorul:
Fig. 3.4 Proiectarea Bazei de date – exemplul 1
In Figura 3.5 avem tabelele Categorii, Atribute și Produse. Categoriile se leagă de Produse și de atribute iar tabelul Atribute este legat de tabelul Produse
Fig. 3.5 Proiectarea Bazei de date – exemplul 2
In figura 3.6 avem Tabelele: Produse, Cos, Comenzi_produse, Useri, Comenzi. Tabelele Cos, Useri, Comenzi_Produse și Comenzi sunt legate de Tabelul Produse. Tabelul Comenzi_produse reprezintă un tabel de legatură ce menține numărul de produse adăugate in coș pentru a fi comandate.
3.6 Schema de sistem a aplicatiei
Fig. 3.6 Schema de sistem a aplicatiei
Administrarea site-ului CompTech.ro este structurată pe doua categorii ce conțin opțiunea de modificare/adaugare/ștergere produse, și vizualizare comenzi.
3.7. Schema de flux informational a noului sistem
Fig. 3.7 Schema de flux informational a noul sistem
Noul sistem, prezentat in figura 3.7, aduce îmbunătățiri considerabile funcționării firmei, facilitează munca ce se depunea până la actualizarea site-ului . Clientul are acces la detaliile produsului fără a fi necesar suportul unui consultant .
Departamentele au acces direct din site la tot istoricul comenzilor și al facturilor fără a fi necesar sa le listeze fizic.
3.8 Propuneri de dotari cu echipamente
Optimizarea funcționării are nevoie de următoarea configurare: PC-uri, Routere, Cablu, Prize, Mufe, Switch, Imprimantă și Sisteme de Operare. Mai jos sunt prezentate componentele și prețurile aferente acestora, reprezentând necesarul pentru configurarea rețelei.
Tab. 3.8 Dotari echipamente
Tab. 3.9 Componente PC
Capitolul 4. Prezentarea produsului software
Rularea și implementarea noului sistem necesită un numar mic de resurse hardware și software. Configurația server-ului bazei de date si a PC-ului folosit pentru Administrarea Site-ului țin de resursele hardware.
4.1 Cerintele platformei hardware si software ale site-ului
Site-ul este conceput să ruleze pe configurații PC cu sistem de operare Windows XP,7,8 si 8.1. Este necesara instalarea unui browser Chrome, Firefox, Opera.
Cerințele minime de sistem sunt : Procesor Intel core 2 duo 2.2 GHz sau procesor AMD echivalent,2 Gb RAM DDR3 1033 Ghz, 300 MB spatiu pe hard disk,video on-board.
Produsul necesită conexiune la internet.
4.2 Descrierea functionalitatii site-ului
Site-ul aduce următoarele avantaje:
Accesarea rapoartelor este mult mai facilă, membrii firmei având un control total asupra plăților înregistrate, a produselor vândute, a stocurilor, a numărului de comenzi dintr-un an, lună sau zi
Orice informație poate fi găsită mult mai ușor, legată de produse și caracteristicile acestora. Se poate efectua un calcul contabil, deoarce exista posibilitatea de a genera facturi în urma comenzilor primite.
Viitorii utilizatori dar și membrii firmei pot utiliza cu ușurinta site-ul deoarece acesta are o interfață accesibilă, fără să necesite cunoștințe în domeniu.
Descrierea interfeței de Rapoarte produse
Fig. 4.0 Interfata iesirilor in functie de produse
Butonul Rapoarte – afișează lista produselor disponibile in site. Rapoartele pe baza produselor ne ajuta să vizualizăm cererea acestora. Ieșirile noului sistem informatic conțin rapoarte pe baza produselor. Iar în urma selecției unui produs se afișează numărul de comenzi, detaliile de comandă, prețul și stocul produsului.
Fig. 4.1 Interfata iesirilor in functie de produse – numar comenzi
Selectând un produs din pagina rapoartelor primim următoarele informații legate de acesta: denumirea produsului, categoria din care face parte, prețul și stocul
Fig. 4.2 Interfata iesirilor in functie de produse – istoric comanda
Avem posibilitatea de a alege comanda în care se află produsul ales și să observăm detaliile acesteia, incluzând numărul și statusul comenzii, cantitatea de produs cerută în aceasta și datele de livrare ale clientului.
Fig. 4.3 Interfata iesirilor in functie de comenzi
Butonul Rapoarte comenzi – oferă posibilitatea de a vedea comenzile plasate într-un anumit an, lună sau zi.
Fig. 4.4 Interfata iesirilor in functie de comenzi – istoric
Accesând butonul de Rapoarte zile ne sunt afișate comenzile aranjate în funcție de an lună sau zi, având posibilitatea de a vedea conțintul acestora.
Descrierea interfeței de Plasare comanda
Fig. 4.5 Interfata intrarilor – cosul de cumparaturi
In figura de mai sus ne este prezentat coșul de cumpărături al utilizatorului
Fig. 4.6 Interfata intrarilor – adaugare produs in cos
Adaugând în coșul de cumpărături produsul dorit primim informații cu privire la categoria din care face parte, cantitatea pe care utilizatorul a dorit-o, prețul unitar, subtotalul comenzii și exista posibilitatea de a șterge produsul adăugat în coș.
Fig. 4.7 Interfata intrarilor – Generare piese compatibile
O noutate a acestui site este adusă generarea unei liste de componente compatibile cu placa de bază adăugată în coș.
Fig. 4.8 Interfata intrarilor – Formular Comanda
Pentru finalizarea comenzii utilizatorul trebuie să completeze câmpurile cu datele de contact și adresa de livrare, plata făcându-se numerar la primirea coletului.
Descrierea interfeței
Fig. 4.9 Interfata Autentificare
Butonul Autentificare – îi deschide utilizatorului o pagină în care să își introduca adresa de e-mail și parola pe care a ales-o la crearea contului pentru a se putea loga asta în cazul în care există un cont pentru utilizatorul care accesează butonul de autentificare, în caz contrar el poate crea un cont apăsând butonul Client nou.
Fig. 4.10 Interfata Client nou
Pentru a putea plasa o comandă, clientul trebuie să își creeze un cont. Crearea contului se face completând câmpurile cu privire la numele și prenumele utilizatorului, adresa de e-mail și parola pe care o dorește.
Fig. 4.11 Interfata Contul Meu
Butonul Contul meu – îi afișează clientului toate detaliile legate de datele de contact și adresa de livrare.
Fig. 4.12 Interfata Contul Meu – istoric comenzi
Navigând in pagina Contul meu, utilizatorul primește informații legate de istoricul comenzilor plasate.
Fig. 4.13 Interfata Modificarea Contului
Pagina Modificare cont îi permite utilizatorului modificarea datelor introduse inițial la crearea contului, numărul de telefon, parola sau adresa de e-mail.
Fig. 4.14 Interfata Produselor
Accesarea unui tip de produs se face prin butoanele aflate în meniul de navigare “Categorii” afișând toate produsele specifice categoriei și ofera utilizatorului posibilitatea de a filtra componentele dorite.
Fig. 4.15 Interfata paginii de Produs
Pagina Produs oferă posibilitatea utilizatorului de a vedea prețul, stocul disponibil, descrierea și caracteristicile specifice.
Clientul poate adăuga în coș produsul descris, utilizând butonul destinat acestei operațiuni, pe pagina de produs există și o scurtă informare legată de comandă.
Fig. 4.16 Interfata Administrare Produse
Butonul Administrare Produse – oferă posibilitatea gestionării produselor de către membrii firmei. Aceștia pot modifica, șterge sau adăuga un produs nou.
Fig. 4.17 Interfata Administrare – Adaugare produs nou
Butonul Adaugare produs nou – navighează către pagina de adăugare produs ce conține formularul cu denumirea, prețul, stocul, categoria și imaginea acestuia. Atributele fiecărui produs sunt adăugate pe aceiași pagină.
Fig. 4.18 Interfata Administrare Categorii
Butonul Categorii – navighează către pagina de adăugare categorie, administratorul având opțiunea de a modifica, șterge sau adăuga noi categorii de produse.
Fig. 4.19 Interfata Administrare Comenzi
Butonul Comenzi – Afișează administratorului toate comenzile plasate și are opțiunea de a modifica statusul acestora și de a genera factura pentru comenzile finalizate.
Fig. 4.20 Interfata Administrare Facturi
Butonul Facturi – afișează administratorului lista cu facturi generate și oferă posibilitatea vizualizării facturilor.
Fig. 4.21 Interfata Administrare Comenzi
In figura 4.21. este afișată factura generată de către sistem iar administratorul poate schimba statusul acesteia din Emisă în Anulată.
Capitolul 5. EFICIENTA SI UTILITATEA APLICATIEI INFORMATICE
Site-ul aduce îmbunatațiri firmei, optimizând munca ce trebuia depusă până la apariția acestuia. Îi permite atât o standardizare dar și noi oportunitâți de dezvoltare atât pe plan financiar cât și pe plan administrativ, clienții putând efectua comenzile direct din site fără a mai fi nevoie de un angajat care să se ocupe exclusiv de comenzi.
Stocurile și evidența produselor nu vor mai fi ținute de către angajați, situația produselor fiind ușor de accesat direct din site.
5.1 Conditii privind implementarea aplicatiei
Angajații firmei au utilizat cu ușurință site-ul încă de la început, el fiind conceput pentru a putea fi accesat fără dificultate atât de către membrii firmei dar și de potențiali clienți.
Până la actualizarea acestuia, era nevoie de un număr mai mare de angajați care să gestioneze stocurile, comenzile, disponibilitatea produselor .
Site-ul îl ajută atât pe client, îi dă posibilitatea să plaseze comanda la orice oră fără să depindă de programul de relații clienți al firmei, îi oferă informații legate de stocul produsului, astfel putând comanda numărul de produse dorite și în plus îi oferă informații legate de alte produse de care ar putea avea nevoie .
Imbunatățirea site-ului îi ajută pe membrii firmei prin optimizarea proceselor de facturare, de gestionare a produselor și a stocurilor, pot întocmii rapoartele dorite mult mai simplu, toate informatiile fiind ușor de accesat.
5.2. Exploatarea curenta a aplicatiei
Evolutia site-ului a dus la ridicarea acestuia la standardul de funcționare pentru vânzarea online.
Realizarea unui sistem informatic se definește sub forma unui proiect de sistem informatic prin intermediul căruia se definesc într-o formă standardizată soluțiile adoptate.
Proiectul sistemului informatic cuprinde documentația de realizare și documentatia finală a sistemului informatic.
5.3 Consideratii privind eficienta aplicatiei informatice
Site-ul a îmbunățit activitatea firmei din toate punctele de vedere, administrativ gestionarea făcându-se cu ușurinta pentru orice domeniu de interes, fie că vorbim de istoricul comenzilor în funcție de an, lună sau zi, se pot verifica stocurile produselor, se pot scoate rapoartele pentru a verifica cererea clientului într-un interval de timp.
Trecerea site-ului de la unul de prezentare la un site de vânzări online ajută și la economisirea timpului și a veniturilor, mărindu-se profitul.
Site-ul este util în primul rând pentru client, oferindu-le posibilitatea de a alege dintr-o gama largă de produse un anumit produs, de a verifica stocul și de a alege cantitatea dorită, fără să fie condiționat de programul de lucru al firmei.
Îi ofera suport acestuia, sistemul generându-i automat componentele necesare pentru a-și alege configurația ideală, astfel, ajutați de descrierea produselor chiar și cei fără experiență în domeniu primesc informații legate de restul componentelor necesare.
Lista figurilor
Figura 1.1 Evolutia cheltuielilor totale in raport cu veniturile totale
Figura 1.2 Organigrama companiei SC COMPTECH SRL
Figura 1.3 Schema Sitemului SC COMPTECH SRL
Figura 1.4 Schema fluxului informational al firmei SC COMPTECH
Figura 1.5 Modelul Conceptual al Datelor pentru SC COMPTECH SRL
Figura 1.6 Nota de Receptie si constatare de diferente
Figura 1.7. Factura Fiscala
Figura 1.8. Stat de salarii
Figura 2.0. Locul aplicatiei in sistemul existent
Figura 2.1. Diagrama Entitate – Asociere
Figura 2.2. Estimarea necesarului de resurse si a calendarului de realizare
Figura 3.0 Proiectarea iesirilor in functie de produs
Figura 3.1 Proiectarea iesirilor in functie de data
Figura 3.2 Proiectarea intrarilor
Figura 3.3 Proiectarea Interfetei
Figura 3.4 Proiectarea Bazei de date – exemplul 1
Figura 3.5 Proiectarea Bazei de date – exemplul 2
Figura 3.6 Schema de sistem a aplicatiei
Figura 3.7 Schema de flux informational a noul sistem
Figura 4.0 Interfata iesirilor in functie de produse
Figura 4.1 Interfata iesirilor in functie de produse – numar comenzi
Figura 4.2 Interfata iesirilor in functie de produse – istoric comanda
Figura 4.3 Interfata iesirilor in functie de comenzi
Figura 4.4 Interfata iesirilor in functie de comenzi – istoric
Figura 4.5 Interfata intrarilor – cosul de cumparaturi
Figura 4.6 Interfata intrarilor – adaugare produs in cos
Figura 4.7 Interfata intrarilor – Generare piese compatibile
Figura 4.8 Interfata intrarilor – Formular Comanda
Figura 4.9 Interfata Autentificare
Figura 4.10 Interfata Client nou
Figura 4.11 Interfata Contul Meu
Figura 4.12 Interfata Contul Meu – istoric comenzi
Figura 4.13 Interfata Modificarea Contului
Figura 4.14 Interfata Produselor
Figura 4.15 Interfata paginii Produs
Figura 4.16 Interfata Administrare Produse
Figura 4.17 Interfata Administrare – Adaugare produs nou
Figura 4.18 Interfata Administrare Categorii
Figura 4.19 Interfata Administrare Comenzi
Figura 4.20 Interfata Administrare Facturi
Figura 4.21 Interfata Administrare Comenzi
Lista tabelelor
Tabelul 1.1 Indicatori din bilantul contabil
Tabelul 1.2 Indicatori din contul de profit si pierderi
Tabelul 1.3. Indicatori derivati din bilant
Tabelul 3.8 Dotari echipamente
Tabelul 3.9 Componente PC
Bibliografie
Carti:
Clare Chiurcher ; Beginning Database Design: From Novice to Professional , Publisher: January 2007 (ISBN-13: 978-1590597699)
Proiectare sistemelor informatice Orientate pe obiecte , editura Prouniversalis , Bucuresti 2005(conf. univ. dr. Doinita Ciocarlan)
Object-Oriented Programming with PHP5: Learn to leverage PHP5’s OOP featires to write manageable applications with ease, Paperback, Hasin Hayder, 2007
V. Chichernea, C. Botezatu, I. Iacob, C. Fabian R. Mihalca, S. Goron:Proiectarea sistemelor informatice. Metode de realizare, Ed. Sylvi, București 2001
Ionel Iacob: ORACLE 10g – Proiectarea si realizarea aplicatiilor cu baze de date utilizand limbajul SQL*PLUS, Editura Prouniversitaria 2009.
M. Moise: Sisteme informatice cu baze de date, Editura Prouniversitaria, Bucuresti, 2008.
Cornelia Botezatu: Proiectarea sistemelor informatice. Metode sistemice. Editura ProUniversitaria, Buc, 2007.
Botezatu Cezar, George Carutasu, Doru Chetrariu: Arhitectura calculatoarelor personale si sisteme de operare specifice, Editura Universul Juridic, Bucuresti, 2005.
Ionel Iacob: SGBD Oracle – Ghid aplicativ pentru realizarea solutiilor informatice, Editura Prouniversitaria, 2007
Publicatii online
https://www.udemy.com/
http://www.lynda.com/Web-Interactive-Web-Design-Projects-tutorials/Building-eCommerce-Web-Site-Using-Dreamweaver-PHP/83091-2.html
www.php.net
www.mysql.org
ANEXA
Pagina Home
<?php
addheader();
echo '<div class="breadcrumb">» <a href="index.php">Home</a> </div>';
echo '<h2 class="titlupag"> Cele mai noi produse </h2>';
if ($_REQUEST['comandaefectuata']=="1") {
echo '<div>Comanda a fost inregistrata! Multumim!</div>';
}
$pagina=intval($_REQUEST['pagina']);
if ($pagina==0) {$pagina=1;}
$per_pagina=9;
if (isset($_REQUEST['atr'])) {
foreach ($_REQUEST['atr'] as $atr => $valori) {
$valori=array_map(function ($v) {return "'".dbs($v)."'";},$valori);
$val=implode(",",$valori);
$addsql.=" AND (SELECT `atribute`.`id` FROM `atribute` WHERE `atribute`.`atribut`='".$atr."' AND `atribute`.`valoare` IN (".$val.") AND `produs`=`produse`.`id`)!=''";
}
}
$sql="SELECT `produse`.*
FROM `produse`
ORDER BY `produse`.`id` DESC ";
$sqlr=$sql." LIMIT ".(($pagina-1)*$per_pagina).",".$per_pagina;
$produse_query=mysqli_query($conn,$sqlr);
$numar_produse=mysqli_num_rows(mysqli_query($conn,$sql));
$pagini=ceil($numar_produse/$per_pagina);
echo '<div id="listaprodnou">';
echo '<ul>';
while ($produs=mysqli_fetch_array($produse_query)) {
if($produs['stoc'] > '0') { $produs['stoc'] = 'Disponibil';}
if($produs['stoc'] <= '0') { $produs['stoc'] = 'Indisponibil';}
$categorie=mysqli_fetch_array(mysqli_query($conn,"SELECT * FROM `categorii` WHERE `id`='".$produs['categorie']."'"));
echo '<li>
<img src="'.$produs['imagine'].'" border="0" height="100">
<div class="titlu"> <a class="titlutxt" href="?p=produs&id='.$produs['id'].'">'.$produs['denumire'].'</a></div>';
$atribute=explode(",",str_replace(" ","",$categorie['atribute']));
echo '<div class="infoatrb">';
foreach ($atribute as $atribut) {
if ($atribut!="") {
$sql="SELECT * FROM `atribute` WHERE `produs`='".$produs['id']."' AND `atribut`='".$atribut."'";
$atribut=mysqli_fetch_array(mysqli_query($conn,$sql));
echo '<p class="desc">'.$atribut['denumire'].' – '.$atribut['valoare'].' '.$atribut['um'];
}
}
echo '</div>';
echo '<div id="info"> <p class="gstoc"> Stoc: '.$produs['stoc'].' </p>
<p class="gpret">'.$produs['pret'].' RON </p> </div>';
$sql="SELECT * FROM `atribute` WHERE `produs`='".$produs['id']."'";
$atquery=mysqli_query($conn,$sql);
'</li>';
}
echo '</ul>';
// Paginatie //
echo '<div id="paginatie">
<form method="post">';
for ($i=1;$i<=$pagini;$i++) {
echo '<button class="pag" type="submit" name="pagina" value="'.$i.'" ';
if ($i==$pagina) {echo 'disabled';}
echo '>'.$i.'</button>';
}
echo '</form>
</div>';
echo '</div>';
$user=intval($_SESSION['user']['id']);
addfooter();
?>
Pagina de logare
<?php
addheader();
echo '<div class="breadcrumb">» <a href="index.php">Home</a> » <a href="?p=login">Log in</a></div>';
echo '<h2 class="titlupag"> Bine ai venit! </h2>';
if ($_REQUEST['do']=='login') {
$user=mysqli_fetch_array(mysqli_query($conn,"SELECT * FROM `useri` WHERE `user`='".dbs($_POST['user'])."' AND `pass`='".md5($_POST['pass'])."'"));
if ($user['id']!="") {
$_SESSION['user']=$user;
$succes=true;
header("location: ?p=home");
}
else {
echo "Username sau parola gresite";
}
}
if ($succes!=true) {
?>
<div align="center">
<form method="post">
<fieldset> <legend> Autentificare </legend>
<input type="hidden" name="do" value="login"/>
<table class="tabelad" cellspacing="0" cellpadding="5">
<tr><td class="tbad2">Adresa de email</td><td class="tbad2"><input type="text" name="user"/></td></tr>
<tr><td class="tbad2">Parola</td><td class="tbad2"><input type="password" name="pass"/></td></tr>
<tr><td align="center"><input type="submit" value="Autentificare"/> </td><td><a class="clientnou" href="?p=utilizatornou"> Client nou </a></td></tr>
</table>
</form>
</div>
<?php
}
addfooter();
?>
Pagina de administrare
<?php
addheader();
echo '<div class="breadcrumb">» <a href="index.php">Home</a> » <a href="?p=admin">Administrare</a></div>';
$do=$_REQUEST['do'];
$tab=$_GET['tab'];
echo '<h1 class="titlupag"> Administrare </h1>';
echo '<div class=admlist>
<a href="?p=admin&tab=produse">Produse</a>
<a href="?p=admin&tab=categorii">Categorii</a>
<a href="?p=admin&tab=comenzi">Comenzi</a>
<a href="?p=admin&tab=facturi"">Facturi</a>
<a href="?p=rapoarte">Rapoarte produse</a>
<a href="?p=rapoartezile">Rapoarte comenzi</a>
</div>';
// PRODUSE
if ($tab=="produse") {
if ($_REQUEST['stergeprodus']!="") {
mysqli_query($conn,"DELETE FROM `produse` WHERE `id`='".intval($_REQUEST['stergeprodus'])."'");
$stergenotif='Produs stears';
}
echo '<h3 class="title">Produse</h3>
<div class="add"><a href="?p=admin&tab=editprodus">Adauga</a> </div>
<table class="tabeladmin" cellspacing="0" cellpadding="3" >';
echo '<tr><td class="th2">#</td><td class="th2">Denumire produs</td><td class="th2">Categorie</td><td class="th2">Operatii</td></tr>';
$sql="SELECT `produse`.*,
`categorii`.`denumire` as `categorie_nume`
FROM `produse`
LEFT JOIN `categorii` ON `produse`.`categorie`=`categorii`.`id`
ORDER BY `produse`.`id` DESC";
$query=mysqli_query($conn,$sql);
echo mysqli_error($conn);
while ($produs=mysqli_fetch_array($query)) {
echo '<tr>
<td class="tdtabel">'.$produs['id'].'</td>
<td class="tdtabel">'.$produs['denumire'].'</td>
<td class="tdtabel">'.$produs['categorie_nume'].'</td>
<td class="tdtabel"><a href="?p=admin&tab=editprodus&id='.$produs['id'].'">Editeaza</a>
<a href="?p=admin&tab=produse&stergeprodus='.$produs['id'].'">Sterge</a>
</td>
</tr>';
}
echo '</table>';
}
if ($tab=="editprodus") {
if ($_REQUEST['stergeatribut']!="") {
mysqli_query($conn,"DELETE FROM `atribute` WHERE `id`='".intval($_REQUEST['stergeatribut'])."'");
$updateprodusnot='<div>Atribut stears</div>';
}
if ($_POST['do']=="updateprodus") {
if ($_POST['id']!="") {
$sql="UPDATE `produse` SET `denumire`='".dbs($_POST['denumire'])."',
`pret`='".dbs($_POST['pret'])."',
`stoc`='".dbs($_POST['stoc'])."',
`descriere`='".dbs($_POST['descriere'])."',
`imagine`='".dbs($_POST['imagine'])."',
`categorie`='".dbs($_POST['categorie'])."'
WHERE `id`='".intval($_POST['id'])."'";
mysqli_query($conn,$sql);
$updateprodusnot="<div>Produs modificat.</div>";
}
else {
$sql="INSERT INTO `produse` (`id`, `denumire`, `categorie`, `pret`, `stoc`, `descriere` `creat`, `autor`, `imagine`) VALUES (NULL, '".dbs($_POST['denumire'])."', '".dbs($_POST['categorie'])."', '".dbs($_POST['pret'])."','".dbs($_POST['stoc'])."', '".dbs($_POST['descriere'])."', CURRENT_TIMESTAMP, '".$_SESSION['user']['id']."', '".dbs($_POST['imagine'])."');";
mysqli_query($conn,$sql);
$_REQUEST['id']=mysqli_insert_id($conn);
$updateprodusnot="<div>Produs adaugat.</div>";
}
}
$id=$_REQUEST['id'];
if ($id!="") {
$produs=mysqli_fetch_array(mysqli_query($conn,"SELECT * FROM `produse` WHERE `id`='".intval($id)."'"));
$titlu=$produs['denumire'];
}
else {
$titlu="Produs nou";
}
echo '<h3 class="title">'.$titlu.'</h3>'.$updateprodusnot.'';
echo '<div class="breadcrumb2"> '.$titlu.' « <a href="?p=admin&tab=produse">Produse</a> « </div>';
echo '<form method="post">
<fieldset> <legend> Adaugare / Modificare produs </legend>
<input type="hidden" name="id" value="'.$id.'">
<input type="hidden" name="do" value="updateprodus">
<table class="tabelad" cellspacing="0" cellpadding="3">
<tr>
<td class="tbad"><span>Denumire:</span></td>
<td class="tbad"><input type="text" name="denumire" value="'.$produs['denumire'].'"></td>
</tr>
<tr>
<td class="tbad"> <span>Pret: </span></td>
<td class="tbad"><input type="text" name="pret" value="'.$produs['pret'].'"></td>
</tr>
<tr>
<td class="tbad"><span>Stoc:</span></td>
<td class="tbad"><input type="text" name="stoc" value="'.$produs['stoc'].'"></td>
</tr>
<tr>
<td class="tbad"><span>Descriere: </span></td>
<td class="tbad"><textarea name="descriere"> '.$produs['descriere'].' </textarea></td>
</tr>
<tr>
<td class="tbad"><span>Imagine:</span></td>
<td class="tbad"><input type="text" name="imagine" value="'.$produs['imagine'].'"></td>
</tr>
<tr>
<td class="tbad"><span>Categorie:</span></td>
<td class="tbad"><select name="categorie"><option value="0">Alege categoria';
$sql="SELECT * FROM `categorii` ORDER BY `denumire` ASC";
$query=mysqli_query($conn,$sql);
while ($categorie=mysqli_fetch_array($query)) {
echo '<option value="'.$categorie['id'].'" ';
if ($categorie['id']==$produs['categorie']) {echo 'selected';}
echo '>'.$categorie['denumire'];
}
echo '</select></td></tr>
<tr>
<td><input type="submit" value="Salveaza"/></td></tr>
</table></fieldset></form>';
//ATRIBUTE
$sql="SELECT * FROM `atribute` WHERE `produs`='".$produs['id']."'";
$query=mysqli_query($conn,$sql);
echo '<h3 class="title">Atribute</h3>
<div class="add"><a href="?p=admin&tab=editatribut&produs='.$produs['id'].'">Adauga atribut</a></div>
<table class="tabeladmin" cellspacing="0" cellpadding="3" width="100%">';
echo '<tr><td class="th2">Atribut</td><td class="th2">Denumire atribut</td><td class="th2">Valoare</td><td class="th2">Operatii</td></tr>';
while ($atribut=mysqli_fetch_array($query)) {
echo '<tr><td class="tdtabel">'.$atribut['atribut'].'</td>
<td class="tdtabel">'.$atribut['denumire'].'</td>
<td class="tdtabel">'.$atribut['valoare'].' '.$atribut['um'].'</td>
<td class="tdtabel"><a href="?p=admin&tab=editatribut&id='.$atribut['id'].'&produs='.$produs['id'].'">Editeaza</a> <a href="?p=admin&tab=editprodus&id='.$produs['id'].'&stergeatribut='.$atribut['id'].'">Sterge</a></td>
</tr>';
}
echo '</table>';
}
if ($tab=="editatribut") {
if ($_POST['do']=="updateatribut") {
if ($_POST['id']!="") {
$sql="UPDATE `atribute` SET `denumire`='".dbs($_POST['denumire'])."',
`valoare`='".dbs($_POST['valoare'])."',
`um`='".dbs($_POST['um'])."',
`atribut`='".dbs($_POST['atribut'])."'
WHERE `id`='".intval($_POST['id'])."'";
mysqli_query($conn,$sql);
$updateatributnot="<div>Atribut modificat.</div>";
}
else {
$sql="INSERT INTO `atribute` (`id`, `produs`, `atribut`, `denumire`, `valoare`, `um`) VALUES (NULL, ".intval($_POST['produs']).", '".dbs($_POST['atribut'])."', '".dbs($_POST['denumire'])."', '".dbs($_POST['valoare'])."', '".dbs($_POST['um'])."');";
mysqli_query($conn,$sql);
$_REQUEST['id']=mysqli_insert_id($conn);
$updateatributnot="<div>Atribut adaugat.</div>";
}
}
$id=$_REQUEST['id'];
if ($id!="") {
$atribut=mysqli_fetch_array(mysqli_query($conn,"SELECT * FROM `atribute` WHERE `id`='".intval($id)."'"));
$titlu=$atribut['denumire'];
}
else {
$titlu="Adauga atribut";
}
$produs=mysqli_fetch_array(mysqli_query($conn,"SELECT * FROM `produse` WHERE `id`='".intval($_GET['produs'])."'"));
echo '<h3 class="title">'.$titlu.'</h3>'.$updateatributnot.'';
echo '<div class="breadcrumb2"> '.$titlu.' « <a href="?p=admin&tab=editprodus&id='.$produs['id'].'">'.$produs['denumire'].'</a> « <a href="?p=admin&tab=produse">Produse</a></div>';
echo '<form method="post">
<fieldset>
<input type="hidden" name="id" value="'.$id.'">
<input type="hidden" name="produs" value="'.$_REQUEST['produs'].'">
<input type="hidden" name="do" value="updateatribut">
<table class="tabelad" cellspacing="0" cellpadding="3" width="100%">
<tr>
<td class="tbad">Atribut:</td>
<td class="tbad"><input type="text" name="atribut" value="'.$atribut['atribut'].'"></td>
</tr>
<tr>
<td class="tbad">Denumire:</td>
<td class="tbad"><input type="text" name="denumire" value="'.$atribut['denumire'].'"></td>
</tr>
<tr>
<td class="tbad">Valoare:</td>
<td class="tbad"><input type="text" name="valoare" value="'.$atribut['valoare'].'"></td>
</tr>
<tr>
<td class="tbad">Um:</td>
<td class="tbad"><input type="text" name="um" value="'.$atribut['um'].'"></td>
</tr>
<tr><td align="center" colspan="2"><input type="submit" value="Salveaza"/></td></tr>
</table>
</fieldset>
</form>';
}
// CATEGORII
if ($tab=="categorii") {
if ($_REQUEST['stergecategorie']!="") {
mysqli_query($conn,"DELETE FROM `categorii` WHERE `id`='".intval($_REQUEST['stergecategorie'])."'");
$stergenotif='<div>Categorie stearsa</div>';
}
echo '<h3 class="title">Categorii</h3>
<div class="add"><a href="?p=admin&tab=editcategorie">Adauga</a>'.$stergenotif.' </div>
<table class="tabeladmin" cellspacing="0" cellpadding="3">';
echo '<tr><td class="th2">#</td><td class="th2">Denumire Categorie</td><td class="th2">Operatii</td></tr>';
$sql="SELECT *
FROM `categorii`
ORDER BY `denumire` ASC";
$query=mysqli_query($conn,$sql);
while ($categorie=mysqli_fetch_array($query)) {
echo '<tr>
<td class="tdtabel">'.$categorie['id'].'</td>
<td class="tdtabel">'.$categorie['denumire'].'</td>
<td class="tdtabel"> <a href="?p=admin&tab=editcategorie&id='.$categorie['id'].'">Editeaza</a>
<a href="?p=admin&tab=categorii&stergecategorie='.$categorie['id'].'">Sterge</a> </td>
</tr>';
}
echo '</table>';
}
if ($tab=="editcategorie") {
if ($_POST['do']=="updatecategorie") {
if ($_POST['id']!="") {
$sql="UPDATE `categorii` SET `denumire`='".dbs($_POST['denumire'])."',`atribute`='".dbs($_POST['atribute'])."' WHERE `id`='".intval($_POST['id'])."'";
mysqli_query($conn,$sql);
$updateprodusnot="<div>Categorie modificata.</div>";
}
else {
$sql="INSERT INTO `categorii` (`id`, `denumire`, `atribute`) VALUES (NULL,'".dbs($_POST['denumire'])."','".dbs($_POST['atribute'])."')";
mysqli_query($conn,$sql);
$_REQUEST['id']=mysqli_insert_id($conn);
$updatecategorienot="<div>Categorie adaugata.</div>";
}
}
$id=$_REQUEST['id'];
if ($id!="") {
$categorie=mysqli_fetch_array(mysqli_query($conn,"SELECT * FROM `categorii` WHERE `id`='".intval($id)."'"));
$titlu=$categorie['denumire'];
}
else {
$titlu="Categorie noua";
}
echo '<h3 class="title">'.$titlu.'</h3>'.$updatecategorienot.'
<form method="post">
<fieldset> <legend> Adaugare categorie noua</legend>
<input type="hidden" name="id" value="'.$id.'">
<input type="hidden" name="do" value="updatecategorie">
<table class="tabelad" cellspacing="0" cellpadding="3" width="100%">
<tr>
<td class="tbad">Denumire:</td>
<td class="tbad"><input type="text" name="denumire" value="'.$categorie['denumire'].'"></td>
</tr>
<tr>
<td class="tbad">Atribute:</td>
<td class="tbad"><input type="text" name="atribute" value="'.$categorie['atribute'].'"></td>
</tr>
<tr><td align="center" colspan="2"><input type="submit" value="Salveaza"/></td></tr>
</table> </fieldset>
</form>';
}
// COMENZI
if ($tab=="comenzi") {
echo '<h3 class="title">Comenzi</h3>';
if ($_GET['genereazafactura']!="") {
$comanda=mysqli_fetch_array(mysqli_query($conn,"SELECT * FROM `comenzi` WHERE `id`='".intval($_GET['genereazafactura'])."'"));
if ($comanda['factura']=="0") {
$rezultat=mysqli_fetch_array(mysqli_query($conn,'SELECT `factura` FROM `comenzi` ORDER BY `factura` DESC LIMIT 0,1'));
$numar=$rezultat['factura']+1;
mysqli_query($conn,"UPDATE `comenzi` SET `factura`='".$numar."', `data_facturare`=NOW() WHERE `id`='".$comanda['id']."'");
echo '<div align="center">Factura emisa cu succes (nr. '.$numar.'). <a target="_blank" href="?p=factura&comanda='.$comanda['id'].'">Vizualizare</a>.</div>';
}
}
echo '<table class="tabeladmin" cellpadding="5" cellspacing="0">';
echo '<tr><td class="th2">Nr.</td><td class="th2">Data</td><td class="th2">Adresa de mail</td><td class="th2">Nume</td><td class="th2">Status</td><td class="th2">Operatii</td></tr>';
$sql="SELECT * FROM comenzi ORDER BY id DESC";
$query = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($query)){
$id = $row['id'];
$uid = $row['user'];
$user = get_username($uid);
if($row['status'] == '0') { $row['status'] = 'In procesare';}
if($row['status'] == '1') { $row['status'] = 'Preluata';}
if($row['status'] == '2') { $row['status'] = 'In livrare';}
if($row['status'] == '3') { $row['status'] = 'Finalizata';}
echo '<tr>
<td class="tdtabel">#'.$id.'</td>
<td class="tdctabel">'.makeDateTime($row['data']).'</td>
<td class="tdtabel">'.$user['user'].'</td>
<td class="tdtabel">'.$row['nume'].'</td>
<td class="tdtabel"> '.$row['status'].'</td>
<td class="tdtabel"><a href="?p=admin&tab=editcom&com='.$id.'">Editeaza</a>';
if ($row['factura']== '0') {
echo '<a href="?p=admin&tab=comenzi&genereazafactura='.$id.'">Genereaza factura</a></td>
</tr>'; }
else { echo '<a target="_blank" href="?p=factura&comanda='.$id.'">Factura nr. '.$row['factura'].'</a>'; }
}
echo '</table>';
}
// EDITARE COMENZI
if ($tab=="editcom") {
$cid = $_GET['com'];
echo '<p class="denum">Comanda: #'.$cid.'</p>';
$sql="SELECT `produse`.`id` as `produs_id`,
`produse`.`denumire` as `produs_denumire`,
`produse`.`pret` as `produs_pret`,
`produse`.`categorie` as `cat_prod`,
`categorii`.`denumire` as `categorie_denumire`,
`comenzi_produse`.`cantitate` as `cantitate_prod`
FROM `comenzi_produse`
LEFT JOIN `produse` ON `comenzi_produse`.`produs`=`produse`.`id`
LEFT JOIN `categorii` ON `categorii`.`id`=`produse`.`categorie`
WHERE `comenzi_produse`.`comanda`='".$cid."'";
$query=mysqli_query($conn,$sql);
echo mysqli_error($conn);
echo '<table class="tabeladmin" cellpadding="3" cellspacing="0">
<tr><td class="th2">Produs comandat</td><td class="th2">Categorie</td><td class="th2">Cantitate</td><td class="th2">Pret unitar</td><td class="th2">Subtotal</td></tr>';
$total=0;
while ($produs=mysqli_fetch_array($query)) {
$subtotal=$produs['cantitate_prod']*$produs['produs_pret'];
echo '<tr><td class="tdtabel">'.$produs['produs_denumire'].'</td><td class="tdtabel">'.$produs['categorie_denumire'].'</td><td class="tdtabel">'.$produs['cantitate_prod'].' buc</td><td class="tdtabel">'.$produs['produs_pret'].' RON</td><td class="tdtabel"> '.$subtotal.' RON</td></tr>';
$total+=$subtotal;
}
echo '<tr><td class="total" colspan="6">Total:<span> '.$total.' RON</span></td></tr>';
echo '</table></br>';
if(isset($_POST['submit'])){
$nume = $_POST['nume'];
$telefon = $_POST['telefon'];
$oras = $_POST['oras'];
$adresa = $_POST['adresa'];
$status = $_POST['status'];
$usql = "UPDATE comenzi SET nume='$nume', telefon='$telefon', oras='$oras', adresa='$adresa', status='$status' WHERE id='$cid'";
$uquery = mysqli_query($conn, $usql);
if($uquery){
echo "Modificarile au fost salvate cu succes!";
} else {
echo "Modificarile nu au putut fi salvate!";
}
}
echo '<form method="post"> <fieldset> <legend> Editeaza comanda</legend>';
echo '<table class="tabelad" cellpadding="5" cellspacing="0">';
$sql="SELECT * FROM comenzi WHERE id='$cid' LIMIT 1";
$query = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($query);
echo '<tr><td class="tbad">Nume:</td><td class="tbad"><input type="text" name="nume" value="'.$row['nume'].'"></td></tr>';
echo '<tr><td class="tbad">Telefon:</td><td class="tbad"><label><input type="text" name="telefon" value="'.$row['telefon'].'"></td></tr>';
echo '<tr><td class="tbad">Oras:</td><td class="tbad"><input type="text" name="oras" value="'.$row['oras'].'"></td></tr>';
echo '<tr><td class="tbad">Adresa:</td><td class="tbad"><input type="text" name="adresa" value="'.$row['adresa'].'"></td></tr>';
echo '<tr><td class="tbad">Status:</td><td class="tbad">
<select name="status">
<option value="0" '.selected($row['status']==0).'>In procesare</option>
<option value="1" '.selected($row['status']==1).'>Preluata</option>
<option value="2" '.selected($row['status']==2).'>In livrare</option>
<option value="3" '.selected($row['status']==3).'>Finalizata</option>
</select>';
echo '<tr><td></td><td><input type="submit" name="submit" value="Salveaza"></td></tr>';
echo '</td></tr>';
echo '</table>';
echo '</form>';
}
// FACTURI
if ($tab=="facturi") {
echo '<h3 class="title">Facturi</h3>';
echo '<table class="tabeladmin" cellpadding="5" cellspacing="0">';
echo '<tr><td class="th2">Nr. facutura</td><td class="th2">Data facturare</td><td class="th2">Comanda</td><td class="th2">Data comanda</td><td class="th2">Adresa de mail</td><td class="th2">Nume</td><td class="th2">Status</td><td class="th2">Operatii</td></tr>';
$sql="SELECT * FROM comenzi ORDER BY id DESC";
$query = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($query)){
$id = $row['id'];
$uid = $row['user'];
$user = get_username($uid);
if($row['status_factura'] == '0') { $row['status_factura'] = 'Emisa';}
if($row['status_factura'] == '1') { $row['status_factura'] = 'Anulata';}
echo '<tr>
<td class="tdtabel">#'.$row['factura'].'</td>
<td class="tdctabel">'.makeDate($row['data_facturare']).'</td>
<td class="tdtabel">#'.$id.'</td>
<td class="tdctabel">'.makeDate($row['data']).'</td>
<td class="tdtabel">'.$user['user'].'</td>
<td class="tdtabel">'.$row['nume'].'</td>
<td class="tdtabel"> '.$row['status_factura'].'</td>
<td class="tdtabel"><a target="_blank" href="?p=factura&comanda='.$id.'">Vizualizare factura </a>
</tr>';
}
echo '</table>';
}
addfooter();
?>
Cod sursa Cos de cumparaturi – Generare componente
<?php
addheader();
echo '<div class="breadcrumb">» <a href="index.php">Home</a> » <a href="?p=cos">Cosul meu</a></div>';
echo '<h2 class="titlupag"> Cos de cumparaturi </h2>';
$user=intval($_SESSION['user']['id']);
$pc = array();
$is_mb = false;
if ($user!=0) {
if ($_REQUEST['do']=="modificabuc") {
foreach ($_REQUEST['cart'] as $id => $cant) {
mysqli_query($conn,"UPDATE `cos` SET `cantitate`='".intval($cant)."' WHERE `id`='".intval($id)."'");
}
}
$sql="SELECT `cos`.*,
`produse`.`id` as `produs_id`,
`produse`.`denumire` as `produs_denumire`,
`produse`.`pret` as `produs_pret`,
`produse`.`categorie` as `cat_prod`,
`categorii`.`denumire` as `categorie_denumire`
FROM `cos`
LEFT JOIN `produse` ON `cos`.`produs`=`produse`.`id`
LEFT JOIN `categorii` ON `categorii`.`id`=`produse`.`categorie`
WHERE `user`='".$user."'";
$query=mysqli_query($conn,$sql);
echo '<form method="post"><input type="hidden" name="do" value="modificabuc">
<table class="tabeladmin" cellpadding="3" cellspacing="0" width="100%">
<tr><td class="th2">Produs comandat</td><td class="th2">Categorie</td><td class="th2">Cantitate</td><td class="th2">Pret unitar</td><td class="th2">Subtotal</td><td class="th2">Sterge</td></tr>';
$total=0;
while ($produs=mysqli_fetch_array($query)) {
$subtotal=$produs['cantitate']*$produs['produs_pret'];
/// RECOMANDARI
if($produs['cat_prod'] == 9){
$is_mb = true;
$placa_baza = $produs['produs'];
$recmonitor = get_monitor($produs['produs_id']);
$pc['monitor'] = $recmonitor;
$rechdd = get_hdd($produs['produs_id']);
$pc['hdd'] = $rechdd;
$recprocesor = get_procesor($produs['produs_id']);
$pc['procesor'] = $recprocesor;
$recmemorie = get_memorie($produs['produs_id']);
$pc['memorie'] = $recmemorie;
$recvideo = get_video($produs['produs_id']);
$pc['video'] = $recvideo;
$recsursa = get_sursa($produs['produs_id']);
$pc['sursa'] = $recsursa;
$reccarcasa = get_carcasa($produs['produs_id']);
$pc['carcasa'] = $reccarcasa;
$recsunet = get_sunet($produs['produs_id']);
$pc['sunet'] = $recsunet;
$recoptic = get_optic($produs['produs_id']);
$pc['optic'] = $recoptic;
$recssd = get_ssd($produs['produs_id']);
$pc['ssd'] = $recssd;
}
echo '<tr>
<td class="tdtabel">'.$produs['produs_denumire'].'</td>
<td class="tdtabel">'.$produs['categorie_denumire'].'</td>
<td class="tdtabel"><input type="text" name="cart['.$produs['id'].']" value="'.$produs['cantitate'].'" style="width:16px;"/> buc</td>
<td class="tdtabel">'.$produs['produs_pret'].' RON</td>
<td class="tdtabel">'.$subtotal.' RON</td>
<td class="tdcos"><a href="delete_cos.php?p='.$produs['id'].'"><img src="tema/img/btndel.png"/></a></td></tr>';
$total+=$subtotal;
}
echo '<tr><td colspan="2"></td><td align="center"><input type="submit" value="Salveaza"/></td><td></td><td class="total" colspan="2">Total:<span> '.$total.' RON</span></td></tr>
</table></form>';
$incos=mysqli_fetch_array(mysqli_query($conn,"SELECT COUNT(*) FROM `cos` WHERE `user`='".intval($_SESSION['user']['id'])."'"));
$incos=$incos[0];
if ($incos) {
echo '<div id="com"><a class="adb" href="?p=comanda">Comanda</a></div>';
}
echo '<p class="desctxt">Pentu ca site-ul nostru sa va genereze un calculator trebuie sa aveti in cos o <span>Placa de baza</span></p>';
echo '<div id="aplicatie">';
if($is_mb){
$i = 0;
echo "<br>";
echo "<p class='desctxt2'>Componente compatibile cu <span>".get_den($placa_baza)."</span>:</p>";
echo "<table>";
echo "<tr>";
foreach($pc as &$val){
$i++;
if($i > 5){
echo "</tr><tr>";
$i = 0;
}
echo "<td class='tdap'><a href='index.php?p=produs&id=".$val."'>".get_den($val)."</a></td>";
echo "<td ><a href='index.php?p=produs&id=".$val."'><img style='width:100px;' src='".get_img($val)."'></td>";
}
echo "</tr>";
echo "</table>";
echo '</div>';
}
}
else {
header("location: ?p=login");
}
addfooter();
?>
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: Analiza Sistemului Existent (ID: 149386)
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.
