Sistem Informatic Pentru Optimizarea Activitatii In Cadrul Unui Restaurant
Descrierea activității în cadrul unui restaurant
1.1 Tipuri de restaurante
Principala activitate a restaurantelor și a localurilor similare este formată din aprovizionarea cu mărfuri, crearea unei atmosfere favorabile destinderii și relaxării clienților, consumul produselor pe loc sau la pachet, pregătirea produselor culinare și a preparatelor de patiserie-cofetărie cât și producția și distribuția de băuturi și mâncare.
Această activitate este grupată în două mari sectoare:
restaurante cu vocație comercială;
restaurante cu vocație socială.
1.2 Restaurantele cu caracter social
Acestea sunt cunoscute și sub denumirea de restaurante pentru colectivități, având în general localizările următoare:
1. în cămine de bătrâni și copii, clinici, sanatorii, spitale, etc ;
2. penitenciare, armată, comunități religioase;
3. în unități de învățământ;
4. sate și centre de vacanță pentru tineret, tabere;
5. în instituții și întreprinderi administrative.
Unitățile majore cu caracter social sunt următoarele:
1. restaurantele automate ;
2. unități pentru servicii pe loc ;
3. restaurante cu autoservire (self-service) ;
4. cantină-restaurant.
1.3 Restaurantele cu vocație comercială
Tradiția și cultura fiecărui popor sunt respectate în acest tip de unitate, adaptate la evoluțiile și înclinațiile înregistrate pe plan mondial. Aici ambianța, vesela pentru masă, ordinea servirii preparatelor și asocierea cu băuturi, arta gastronomică și obiceiurile fiecărui popor sunt puse în valoare. Amplasarea acestor localuri este foarte diversificată. Așezarea acestora se conturează în funcție de capacitățile de învestire ale întreprinzătorilor români, ale concurenței interne și de cerințele pieței. În România amplasarea localurilor de acest gen se realizează astfel:
în centre comerciale și marile magazine;
în locuri și zone de agrement;
în autogări, aeroporturi ,gări, porturi etc;
pe principalele artere de circulație și în zonele rurale;
în hoteluri și structuri similare;
în centrele municipiilor, orașelor și în zonele aglomerate ;
Exemple de restaurante cu vocație comercială :
restaurante clasice;
restaurante cu specific;
restaurante specializate;
restaurante cu auto-servire;
restaurante cu servire rapidă
1.4 Restaurantele specializate
De obicei, acestea conțin unități gastronomice, unde clienții au parte de sortimente personalizate și de băuturi care sunt preparate în mod tradițional sau într-un mod aferent structurii sortimentale ce creează unitatea specializării. Aici se includ și restaurantele pescărești.
Principiul de organizare a unei unități specializate este același ca al unui restaurant clasic. Deosebirea constă în structura sortimentală a preparatelor și băuturilor servite. De obicei la unitățile cu specific pescăresc există amenajări și dotări interioare corespunzătoare profilului sortimental.
POSNET
Special conceput pentru baruri, cluburi, localuri de tip fast food și restaurante, POSnet este un software Point of Sale. POSnet Soft Restaurant este ușor de utilizat și robust în același timp, fiind alegerea corectă pentru orice activitate ospitalieră.
Indiferent dacă dispunem de o singură locație sau de o franciză la nivel național, prin intermediul POSnet Soft Restaurant avem parte de simplitate în managementul restaurantului.
În România și Europa sunt sute de clienți care folosesc soft-ul de o perioadă lungă de timp. Clienții se împart în diferite domenii de activitate: de la restaurante de lux, baruri, cluburi, fast food până la catering.
Cei de la POSnet spun că investesc constant în soluțiile soft și hardware oferite și integrează ultimele noutăți tehnologice, pentru a se adapta mereu la cerințele clientului.
Restaurant POSnet oferă posibilitatea de a realiza gestiunea completă a activității localului, fiind obținut un flux informațional exhaustiv, de la recepția produselor până la vânzarea lor, toate etapele necesare fiind parcurse (raport de producție, fișe de magazie, note de recepție, etc.) si îi sare în ajutor managerului prin înlăturarea inventarelor manuale care sunt mari consumatoare de timp. Interfața inovatoare este complet configurabilă pentru orice amplasare și face posibilă preluarea comenzilor într-un mod rapid și precis. Amplasarea meselor în restaurant este reprezentată grafic iar produsele și categoriile au atașate imagini pentru o identificare rapidă.
Figura 1 –Aplicația Posnet
Fișele de produs, bonurile de consum, NIR-urile, situația stocurilor, rapoartele de producție sunt generate în mod automat de POSnet și sunt calculate adaosurile comerciale practicate și costurile materiilor prime.
Soft-ul POSnet a fost dezvoltat pe o platformă sigură și modernă, fiind posibilă funcționarea pe echipamente mobile Apple iPod și Apple iPad. Trimiterea datelor se efectuează instant, chiar și la distanțe de 350 de metri fața de router. Două mari probleme ale altor sisteme sunt evitate folosind aceste echipamente și se realizează preluarea comenzilor chiar și în condiții de lumină ridicată(ex. terasă sau plajă) și se asigură o autonomie de 10 ore la o încărcare a bateriei suplimentare. Schimbarea acestor baterii de rezervă durează mai puțin de 10 secunde, astfel fiind facilitat un flux de lucru accelerat.
Marele dezavantaj al acestui soft este constituit din investiția foarte mare ce trebuie facutp pe partea de hardware, deoarece are cerințe specifice foarte ridicate: memoria RAM a dispozitivelor trebuie să fie puternică, avem nevoie pe lângă un server, de interfețe client reprezentate de dispozitive mobile cu un preț de achiziție ridicat.
FREYA RESTAURANT
Acesta este un software restaurant complet pentru conducerea prosperă și fără erori a fast-food-urilor, cantinelor, ceainăriilor, pizzeriilor, cluburilor, barurilor, restaurantelor, cafenelelor și a tuturor unităților de acest gen din domeniul HoReCa oricare ar fi dimensiunile lor.
Fiind o aplicație proiectată pentru folosirea pe dispozitive mobile de către angajați, Freya Restaurant Mobile le permite acestora marcarea comenzilor direct în sistem. Posibilitatea de a asocia sau de a separa vânzări este oferită de acest soft, astfel se poate realiza mult mai bine gestionarea situațiilor în care clienții se alătură altei mese sau sunt dorite note de plată separate în cadrul aceleiași mese.
Software-ul este utilizat și de indivizi care nu cunosc limba romană, interfața fiind disponibilă în mai multe limbi.
Ceea ce face Freya POS unic este posibilitatea clienților de a achita nota de plată prin intermediul telefonului mobil sau de a apela la serviciul unei companii de taxiuri prin integratori de servicii specializate.
Figura 2 –Aplicația Freya
Acest soft poate interacționa cu un număr mare de echipamente pentru a câștigă timp și pentru a ușura munca (imprimante fiscale și operaționale, cititoare coduri de bare și cititoare de carduri, case de marcat, cântare, etc.)
Clienții și grupele de clienți se pot defini în scopul fidelizării lor, astfel facilitatea de a aplica reduceri pentru anumiți clienți sau pentru cei care aparțin unui grup fiind disponibilă.
Managerul are control total asupra afacerii oricând și din orice locație, având acces la descărcarea stocurilor în timp real atât valoric cât și cantitativ.
Modulul denumit Freya Restaurant Kitchen este o aplicație specifică bucătăriei, eficacitatea sa constând în optimizarea realizării comenzilor primite. Fiind un modul complex de administrare al secțiilor de preparare / producție, acesta mărește eficiența managerială prin monitorizarea ocupațiilor tuturor angajaților, de la bucătari la barmani și ospătari.
Figura 3 –Aplicația Freya – interfața 2
Orice business care furnizează produse la domiciliul clientului își poate diminua munca prin intermediul modulului Freya Restaurant Delivery, acest modul acoperind toate nevoile unei astfel de afaceri.
IMPERIAL BAR
IMPERIAL BAR este un soft creat special pentru orice restaurant, fast food, bar sau chiar și pentru o sală de biliard.
Pentru a ușura munca ospătarilor, designul soft-ului va fi specific localului în care se dorește utilizarea acestuia, creându-se o hartă a localului. Posibilitatea de a modifica numărul de scaune de la mese este oferită, preluarea comenzilor putând fi făcută pe persoane sau pe masă, facilitatea de a muta clientul de la o masă la alta fiind de asemenea asigurată.
Softul oferă mai multe beneficii printre care :
1. tipărirea notei de plată personalizată;
2. statistici privind consumul pe client/produse/masă/stoc/vânzări;
utilizarea de carduri de fidelitate (orice model), sistem complet de "tarife membri" si “puncte bonus”;
închideri zilnice pe baza comenzilor;
raport vânzări pe perioadă sau pe ospătar;
6. preluarea comenzilor de către ospătar;
7. includerea de contoare automate la mese de joc (rummy, biliard, cărți), unde tarifarea se face pe secundă, asemănător contoarelor din taximetre;
8. generarea tuturor documentelor de contabilitate primară: bon consum, facturi, facturi proforma, notă recepție, chitanțe, registru de casă, producție (pe bază de rețetar, inclus în
9. creșterea semnificativă a încasărilor, eliminând erorile umane de calcul;
10. posibilitatea automatizării iluminatului de la mese (becul de la masă se aprinde/stinge o dată cu pornirea/oprirea contorului din program);
11. tipărire bon fiscal total sau cu plată parțială (storno, factură avans);
12. tipărirea comenzilor pe mai multe gestiuni separate (pe imprimante termice).
Prețul și necesitățile hardware reduse(acestea fiind oferite în mare parte de către creatorii softului) reprezintă un mare avantaj al acestui software.
Figura 4 –Aplicația Imperial Bar
2. Metode, tehnici și instrumente pentru realizarea aplicației
2.1 Microsoft Visual Studio
Din momentul lansării și până în ziua de astăzi, Visual Studio a avut parte de foarte multe modificări, îmbunătățindu-se și actualizându-se versiunea constant, ajungând în prezent la versiunea 2013, cu precizarea că în curând o să apară versiunea 2015.
O dată cu prima versiune, Microsoft a reușit să grupeze toate produsele Visual Basic, Visual FoxPro, Visual C++ și SourceSafe pentru a fi puse spre vânzare toate într-un pachet. După puțin timp a apărut versiunea Visual Studio ‘97 sub numele de “cod Boston”, fiind disponibilă în 2 ediții: Professional și Enterprise, integrând totodată Visual J++ și Visual InterDev. La un an diferență pachetul oferit de Microsoft se dezvoltă aducând pe piață versiunea 6.0 sub numele de “cod Aspen”. S-a păstrat modul de comercializare la fel ca în cele 2 ediții anterioare. În ediția de Enterprise se regăseau caracteristici ce nu erau incluse în ediția
Pachetul a încetat să se dezvolte până în 2002, când a apărut versiunea .NET 2002 lansată sub numele de “cod Rainier”. O dată cu noua ediție, au apărut noi forme de comercializare: Academic, Professional, Enterprise Developer, Enterprise Arhitect. Acesta este anul în care Microsoft a adus un nou limbaj de programare în mediul de dezvoltare Visual Studio – Microsoft C#- , limbaj ce se bazează pe arhitectura .NET FRAMEWORK.
Un an mai târziu se face o actualizare a ultimei versiuni, lansându-se versiunea .NET 2003 sub numele de “cod Everett”. Se păstrează formele de comercializare precedente, datorită succesului uriaș pe care compania l-a obținut în urmă cu un an. Marele avantaj al noii versiuni era acela că permitea conectivitatea cu sistemul Oracle. Mai apoi au apărut versiunile: Visual Studio 2005(cod Whidbey), VS 2008(cod Orcas), VS 2010 (cod Dev10) ,VS 2012 și VS 2013 (urmează marea lansare a VS 2015).
Marele avantaj al viitoarei ediții din 2015, este acela că lansează un Emulator Visual Studio pentru Android, concurând astfel direct cu Eclipse-ul. Această facilitate se poate utiliza fie într-un proiect cross-platform în Visual Studio (Xamarin sau C ++), sau în Visual Studio Tools pentru Apache Cordova . Emulatorul permite comutarea între diferite platforme fără sa apară conflicte Hyper-V. Acest instrument nou are următoarele facilități: GPS / Locul de amplasare, accelerometru, rotația ecran, zoom, card SD, și acces la rețea.
2.1.1 . NET
Figura 5 – Platforma .Net
Platforma .NET –fig. 8- este un așa zis cadru sau framework având ca scop dezvoltarea de soft unitar – crearea de aplicații desktop și aplicații Web.
Platforma încorporează o colecție de tehnologii , după cum urmează: ASP-ul, XML-ul, POO, SOAP, UDDI. Totodată aduce și mai multe limbaje de programare, precum: C++, J#, C#, VB.
Tehnologia .NET Framework este o componentă ce este direct legată de sistemul de operare de la Microsoft – Windows. Pentru a dezvolta aplicații pe această platformă trebuie sa ținem seamă de anumite componente:
o suită de limbaje, un set de medii de dezvoltare, o bibliotecă ce conține clasele utile aplicațiilor. Există servere specializate, care ajută un programator ce vrea să dezvolte aplicații de tip .NET, cum ar fi: Enterprise.NET în cadrul cărora sunt implementate funcții pentru stocarea bazelor date, a email-urilor și aplicațiilor Bussiness to Bussiness, servere Web ( .NET Passport) ce se dezvoltă pe conceptul de identificare a utilizatorilor pe bază de username și parolă.
Platforma .NET Framework a fost creată din mai multe compilatoare, biblioteci și executabile.
Arhitectura .NET Framework are la bază platforma comună de executare a programelor denumită Common Language Runtime sau CLR ce este utilizată de limbajele integrate, și un ansamblu de biblioteci utilizate în crearea aplicațiilor Web / Desktop, ce poartă numele de Framework Class Library (FCL).
.Net este construit din două mari componente: Common Languace Runtime(CLR) și Base Class Library (BCL). Aceste componente folosesc 2 tipuri de limbaje: limbajele interpretate și limbajele compilate.
Partea de execuție a programelor și de managementul codului în care este scris limbajul respectiv este exercitată de CLR. Această componentă furnizează servicii precum securitatea aplicațiilor, portabilitatea aplicațiilor și chiar tratarea multor excepții.
De interfața cu utilizatorul, în schimb se ocupă BCL-ul. Acesta se ocupă și de conectarea sistemului la o bază de date, de comunicarea rețelelor, de accesarea bazei de date la care ne-am conectat, etc.
Figura 6 Creare cod executabil pe platforma .NET
Lb. interpretate impun scrierea unui cod – fig. 9, apoi rularea lui sub formă de aplicație. Fiecare linie din cod în momentul compilării va fi interpretată și schimbată în scurt timp în cod mașină și apoi executată, datorită componentei de interpretare.
Lb. compilate sunt definite de codul cunoscut sub denumirea conceptuala de “cod sursă”. Compilator îl transformă în cod executabil. Dacă avem erori în timpul compilării , acestea trebuie corectate. Codul corectat va fi recompilat. După ce nu mai prezintă erori de compilare, acesta este translatat în cod executabil și aplicația trece în stadiul de rulare. Un asemenea limbaj poate fi considerat C sau C++.
Principalele componente ale platformei .NET Framework:
Common Language Specification
Common Type System
Common Intermediate Language
Common Language Runtime
Metadate, Assemblies, Assembly cache
2.1.2 C# (C Sharp)
Prin intermediul C# se pot crea o multitudine de aplicații într-un timp foarte scurt. Acest limbaj are ca scop punerea în combinație a limbajul Visual Basic cu C++ pentru a da rezultat unor aplicații moderne, user-frendly și de a ușura munca programatorului prin intermediul interfeței grafice, dar și a limbajului mai facil.
În C# putem dezvolta aplicații Desktop (denumire și WinForms), aplicații RIA , jocuri, etc. C# este un limbaj de programare puternic obiectual, ce a apărut în anul 2000, o data cu proiectul “.NET” și face parte din suita “.NET Framework”. Prin intermediul acestui limbaj s-a încercat înlăturarea unor probleme majore din limbajul C/C++, printre care cele mai importante sunt: încărcarea memoriei sau problema pointerilor.
Limbajul dispune de o facilitate denumită “garbage collection” (GC.Collect();) – o formă de management automat al memoriei. “Colectorul de gunoi”, sau pur și simplu colector, încearcă să elibereze memoria ocupată de obiecte care nu mai sunt utilizate de program. “Colectarea gunoiului” a fost inventat de John McCarthy în jurul anului 1959 pentru a rezolva problemele în Lisp. Datorită acestei facilități, programatorul nu mai este nevoit să dezaloce memoria manual (din codul sursă).
C# este un limbaj complet, ușor de învățat, modern, util, orientat pe obiecte ce a fost derivat din limbajele C++ și Java. Din anul 2002, limbajul C# este parte integrată din pachetul Microsoft Visual Studio, permițând dezvoltarea de aplicații pentru consolă, pentru Windows (aplicații desktop), dar și pentu Web (Web Application, Windows Application ,Console Application).
Discrepanțe între C# și C++:
Tipurile valorice sunt implementate ca structuri și nu putem deriva multiplu din mai multe clase, ci putem deriva multiplu dintr-o clasă și mai multe interfețe. Este necesar ca toate variabilele să se afle într-o clasă sau într-o structură; nu putem instala variabile globale. Datorită unor facilități menționate mai sus, nu mai este nevoie să definim destructorul, toate obiectele folosite fiind dezalocate automat. În C# există doar o singură funcție Main() indiferent de numărul de clase definite și trebuie să se regăsească într-una din ele.
Trasăturile de baza ale limbajului:
1. Orientat pe obiecte
Limbajul C# este un limbaj care permite încapsularea datelor, moștenirea de date, polimofismele și multiple interfețe. Spre deosebire de alte limbaje, C# a introdus anumite structuri care permit tipurilor: int, float, double,etc să devină obiecte. (String str = y.Tostring(); y de orice tip)
2. Modern
Datorită modificărilor și actualizărilor constante, prezente de-a lungul ultimei decade, limbajul C# a fost îmbunătățit astfel încât să se adapteze tendințelor din prezent, tehnologiei avansate și programatorilor care lucrează cu el, din ce în ce mai pretențiosi. Deși este un limbaj simplu, putem spune că este în același timp foarte puternic și poate construi aplicații robuste și ușor configurabile. Limbajul dispune de un un suport built ce are capacitatea să transforme o componentă într-un web-service.
3. Simplu
Față de limbajul C++, aici au dispărut pointerii. C# dispune de intervale variabile pentru tipurile de date primitive, precum Integer și Float. Memoria nu se poate manipula în mod direct. Se elimină operatorii greoi din alte limbaje (->; ::,etc). Valorile de 0 și 1 nu mai sunt interpretate ca valori booleene, fiind transformate în valori de “true” și “false”. Operatorii “=” si “==” nu pot fi supraîncărcați ci doar folosiți în operații de atribuire și comparație.
4. Type safe
Se accesează numai locațiile de memorie în care este autorizat accesul. Type-safe nu poate citi valorile dintr-un câmp privat al altui obiect. Ea accesează tipurile bine definite în moduri permise. În timpul compilării, “just-in-time” (JIT), se execută un proces de verificare opțional care examinează metadatele și limbajul intermediar Microsoft (MSIL) al unei metode scrisă în cod mașină, pentru a verifica dacă această metodă este de tip type-safe. Acest proces este sărit dacă codul are permisiunea de “bypass verification” – de a ocoli verificarea.
2.2 Microsoft Sql Server
Microsoft SQL Server este un produs software al cărui funcție principală este de a stoca și prelua datele solicitate de către alte aplicații software, indiferent dacă acestea se află pe același computer sau dacă aplicațiile rulează pe un alt calculator aflat într-o rețea (inclusiv prin internet, nu neapărat Intranet). Este un sistem relațional de gestionare a bazei de date dezvoltat de Microsoft și există numeroase ediții ale Microsoft SQL Server care vizează diferite segmente de public și aplicații: mici aplicații ce rulează pe o singură masina, dar și aplicații mari care se interconectează printr-o conexiune la internet, facilitând lucrul cu mai mulți utilizatori simultan. Principalele limbaje folosite sunt: T-SQL și ANSI SQL.
SQL este un acronim pentru “Structured Query Language” – limbaj structurat de interogări, fiind cel mai răspândit limbaj pentru bazele de date.
La baza Microsoft SQL Server stă o variantă de SQL numită Transact-SQL sau T-SQL, o integrare de SQL-92 (standardul ISO pentru SQL) cu unele extensii. Transact-SQL adaugă în principal sintaxa aditională pentru tranzacții și pentru procedurile stocate. Principalele condiții pentru orice tranzacție sunt: atomicitate, consistență, izolare, durabilitate(prescurtat ACID). Aceste condiții sunt necesare standardelor SQL. MS SQL Server suportă ODBC (Open Database Connectivity).
Microsoft SQL Server Express este o versiune de SQL Server – sistem de gestionare a bazelor de date relaționale Microsoft, fiind gratuit pentru descărcare, distribuire și folosință. Acesta cuprinde o bază de date care vizează în mod specific aplicațiile dezvoltate pentru companii mici și mijlocii, având baze de date de dimensiuni mai mici. Produsul iși are rădăcinile de la produsul Microsoft Database Engine (MSDE), care a fost livrat împreună cu SQL Server 2000. Brandul "Express" a fost folosit de la lansarea de SQL Server 2005.
Codul care stă la baza acestei tehnici este puternic înrădăcinat în originea Sybase Sql Server, care a adus firmei Microsoft primul pas pe piața celor ce utilizează baze de date fiind în puternică concurență cu firme de renume precum Oracle, IBM și chiar Sybase. Prima versiune introdusă pe piață a fost denumită Sql Server 4.2 și special creată pentru Win OS/2. Mai târziu, a apărut primul server de baze de date ce se baza pe GUI, și anume Sql Server 7.0.
Prin intermediul utilitarului pus la dispoziție de către Microsoft avem posibilitatea de:
creare și testare de conexiuni pentru mai multe baze de date / scheme, înmagazinare de conexiuni utilizate, import și export de conexiuni, înmagazinare de parole, suport pentru Open Database Conectivity;
interogarea și actualizarea datelor ( exemplu: suport pentru CLOB and BLOB, inserție/actualizare/ștergere de date)
modificarea obiectelor ( exemplu: redenumirea tabelelor, adugarea de coloane noi, compilare, debug, ștergere de secvențe)
căutarea obiectelor, crearea obiectelor( include suport pentru tabele externe sau temporare )
2.3 Limbajul SQL
La originea SQL(Structured Query Language – Limbaj Structurat de Interogare) sta un limbaj bazat pe algebra relationala, SQL fiind un limbaj de programare specific pentru manipularea datelor in sistemele de manipulare a bazelor de date relationare (RDBMS) si avand ca scop scop inserarea datelor, interogații, actualizare și șrgere, modificarea și crearea schemelor, precum și controlul accesului la date.
Fiind cel mai popular limbaj utilizat pentru modificarea, creearea, manipularea și regasirea datelor de către SGBD-urile (Sistemele de Gestiune a Bazelor de Date) relaționale acest limbaj a devenit un standard în domeniu (standardizat ANSI-ISO). Pe lângă versiunile standardizate ale limbajului, există o mulțime de dialecte și variante, unele proprietare, fiind specifice anumitor SGBD-uri și de asemenea conținând extensii pentru a suporta SBD-urile (Sistemele de Baze de Date) obiectuale (obiectual-relaționale). Este permis atât accesul la structura bazelor de date cât și la conținutul acestora.
Cea mai frecventă operațiune în SQL este interogarea, care se realizează cu instrucțiunea SELECT declarativ. Instrucțiunea SELECT preia date de la unul sau mai multe tabele și expresii. SELECT-ul standard nu produce efecte permanente în baza de date. Unele implementări non-standard ale instrucțiunii pot avea efecte persistente, cum ar fi sintaxa SELECT INTO care există în unele baze de date, instrucțiune ce reproduce INSERT-ul într-un nou tabel.
Interogarea permite utilizatorului să descrie datele dorite, lăsând sistemul de gestionare a bazei de date (DBMS), responsabil pentru planificarea, optimizarea și efectuarea operațiunilor fizice necesare să genereze acest rezultat în funcție de criteriile dorite.
Interogările pot fi imbricate astfel încât rezultatul unei interogari poate fi utilizat într-o altă interogare prin intermediul unui operator de relaționare sau o funcție de agregare. O interogare imbricată este, de asemenea cunoscută sub numele de subinterogare. În timp ce se alătură și alte operațiuni de masă se pot furniza rezultate ce implică calcule superioare. În multe cazuri, utilizarea subinterogărilor introduce o ierarhie în execuție, care poate fi utilă sau necesară.
Instrucțiunile SQL sunt de mai multe feluri și sunt grupate fie în instrucțiuni de definire a datelor, de manipulare a lor, sau de selecție și în instrucțiuni de procesare a tranzacțiilor, de control al cursorului sau de controlul accesului la date.
Fiind un limbaj standardizat, SGBD-urile de tipul Access și Oracle recunosc instrucțiunile integrate în acesta. În prezent circulă 3 moduri de bază pentru implementarea limbajului Sql și anume:
Direct Invocation sau apel direct ce presupune introducerea instrucțiunilor direct de la prompter
Modul Language sau metodă modulată ce utilizează proceduri specifice apelate de programul aplicație
Embedded SQL sau metodă încapsulată ce utilizează instrucțiuni încapsulate în codul din program
3. Analiza și proiectarea sistemului informatic
Orice aplicație informatică ia naștere în urma unei analize a cerințelor clientului (utilizatorului), a viabilității acestora, a principalelor funcționalități, cu scopul de a proiecta arhitectura soluției.
Procesul de proiectare a unui sistem informatic presupune parcurgerea următoarelor etape (acestea se parcurg în mod iterativ până trec de ultimul pas):
studierea cerințelor ce pot influența în mod direct arhitectura – determinarea unui model arhitectural în vederea stabilirii pașilor necesari proiectării arhitecturii;
proiectarea efectivă a arhitecturii – stabilirea tehnologiilor, metodelor, precum și a responsabilității fiecărei componente care creează sistemul informatic;
validarea – orice arhitectură trebuie să fie testată înainte de a fi implementată.
Validarea sau testarea acesteia presupune verificarea arhitecturii create în raport cu cerințele formulate la pasul 1. Se verifică dacă arhitectura poate să implementeze respectivele cerințe, precum și dacă poate răspunde unor noi funcționalități.
Figura 7 – Proiectarea arhitecturii unui sistem informatic
3.1. Specificarea cerințelor sistemului informatic
În urma analizării sistemelor informatice de acest tip prezente pe piață, dar și în urma discuțiilor avute cu utilizatorii de zi cu zi a acestora, am stabilit principalele funcționalități ce trebuie implementate pentru ca aplicația să fie viabilă, să atingem un minimum de funcționalități (MVP –Minimum Viable Project).
Aplicația își propune să fie ușor de utilizat, să aibă o parte de management accesibilă și să dispună de toate funcționalitățile necesare unui utilizator pentru a-și îndeplini cu succes treaba. Pentru a realiza aceste obiective, trebuie creată o interfață ușoară, prietenoasă și care să răspundă rapid interogărilor, modificărilor și altor operațiuni create de utilizatori, oferindu-i acestuia o cale lejera de întrebuințare a acesteia.
Primul pas în realizarea sistemului informatic este crearea unei baze de date optimizate care să țină o evidență a comenzilor, a acțiunilor utilizatorilor, a meniurilor, produselor, pentru a crește eficiența productivității angajaților și a procesului informațional. Arhitectura acesteia trebuia să parcurgă anumiți pași ce constituie un traseu de informații necesare ospătarilor.
Arhitectul sistemului are ca obiectiv crearea unei baze de date ce dispune de o capacitate medie de stocare (maxim 10 GB), ceea ce e suficient pentru orice activitate de restaurant din țară și nu numai.
Un alt obiectiv important al acestuia este reprezentat de acoperirea aspectelor importante din cadrul gestionării unui restaurant și anume gestionarea fluxului de date în timp util și real.
Orice aplicație trebuie sa aibă cel puțin un nivel de securitate. Astfel, fiecare conexiune poate să aibă loc doar în urma unei autentificări în sistem. Fiind o aplicație desktop, se regăsește și un al doilea sistem de securitate și anume faptul că serverul se află în rețeaua locală, iar accesul la aplicație nu se poate face din exterior, fiind necesar un IP local pentru conectare. De asemenea fiecare device conectat la aplicație poate fi stocat pe server, astfel că niciun alt terminal nu poate accesa datele.
Trebuie să pornim de la partea principală a activității unui restaurant și anume organizarea meselor. De aceea tabela principală a arhitecturii este cea care stochează nomenclatorul de mese.
Fiecare masă poate să treacă prin 3 stări:
Liberă
Rezervată
Ocupată
Pentru a ajuta ospătarul trebuie să găsim o soluție de reprezentare vizuală a acestor stări, lucru ce se poate realiza prin culori (alb – liber, verde – rezervat și roșu – ocupat). Modalitatea de trecere dintr-o stare în alta se face astfel: o masă liberă poate fi rezervată sau ocupată direct. Pentru a redeveni liberă, trebuie să se elibereze un bon fiscal pentru masa respectivă.
Tot ca o funcționalitate minimală trebuie să se regăsească și posibilitatea generării unui bon fiscal. Pentru a putea genera acest raport este necesară o tabelă de comenzi, unde se stochează datele referitoare la comenzile fiecărei mese ocupate. De asemenea, trebuie să existe posibilitatea ca plata să se facă sub formă de cash sau prin intermediul cardului bancar.
Bonul fiscal se prezintă ca un raport ce evidențiază comanda dată pentru respectiva masă, precum și calculul prețului final.
Aplicația trebuie să realizeze toate calculele presupuse de activitatea economică din cadrul unui restaurant pentru a elimina erorile umane de calcul.
Un manager are întotdeauna nevoie de rapoarte statistice care să-i prezinte situația restaurantului la data curentă sau la o dată anterioară, pentru a putea să stabilească în mod corect strategii de viitor, schimbări, soluții sau alte decizii care să maximizeze profitul companiei. În acest sens sistemul informatic trebuie să genereze rapoarte statistice privind consumul cantitativ sau valoric pe masă, într-o anumită perioadă. Posibilitatea generării de rapoarte de vânzări pe mese sau ospătari este o altă funcționalitate viabilă a unei aplicații de gestiune a unui restaurant.
Totodată, prin utilizarea sistemului creat, se poate considera că se elimină inventarele manuale consumatoare de timp, astfel eficientizându-se și corectându-se activitatea de zi cu zi a angajaților.
Un alt obiectiv principal al aplicației este reprezentat de o interfață intuitivă, care poate fi configurabilă și care dispune de cele mai noi controale și tehnologii, astfel ca utilizatorul să dispună de un confort grafic amplificat pentru a-și putea gestiona timpul și activitatea într-un mediu placut.
Administratorul (managerul sau șeful de sală) aplicației trebuie să poată consulta nomenclatorul de produse și să adauge, modifice sau să șteargă produse în funcție de stocul restaurantului.
Pe lângă nomenclatorul amintit anterior, acesta poate să modifice și nomenclatorul de mâncăruri, introducând noi specialități culinare, împreună cu rețetarul acestora.
Din aplicație trebuie să se poată genera în orice moment meniul restaurantului, cu toate mâncărurile și produsele oferite, astfel încât ospătarul să poată oferi clientului toate informațiile necesare privind rețetarul, prețurile și numărul de calorii al fiecărui tip de mâncare.
În momentul în care utilizatorul introduce un produs sau o mâncare comandată, pe ecran trebuie să-i apară în timp real prețul acesteia.
Ospătarul are la dispoziție un ecran simplificat, ușor de accesat și care dispune de toate funcționalitățile necesare pentru a putea să preia o comandă în orice moment. Astfel, în momentul în care acesta intră pe masa liberă/rezervată, se deschide o nouă fereastră care dispune de un meniu propriu și un gridview (tabel cu posibilitate de adăugare/modificare rânduri) în care acesta trebuie să introducă preferințele comandate de către client. Aceste date se vor salva într-o tabelă de comenzi, unde se stabilește starea mesei (și anume ocupată), data la care a fost preluată comanda, precum și data de plecare a clientului (momentul generării bonului fiscal).
Administratorul are acces la meniul de configurare, care ii permite să gestioneze conturile angajaților, în vederea menținerii conturilor actuale și ștergerii conturilor angajaților care au demisionat sau au fost concediați. În vederea acestei funcționalități, administratorul poate să introducă noi conturi, să modifice parolele actuale, să le afișe pe cele vechi (în cazul în care utilizatorul nu reușește să își mai amintească parola), etc.
3.2.Analiza
3.2.1 Identificarea entităților și a caracteristicilor acestora
În Figura 12 avem prezentate principalele tabele ale aplicației ce urmează a fi creată. Sunt în număr de 11 și doar 10 dintre ele vin în legătură directă cu fluxul de informații. Fiecare dintre acestea prezintă informații despre angajații firmei și funcțiile acestora, cât și despre programul lor de muncă, casele de marcat prezente în supermarket, comenzile aferente întreprinderii, depozitele amplasate, stocurile ce formează depozitele, activele circulante și furnizorii de marfă .
Prezentarea entităților principale (tabele)
3.2.2 Identificarea procedurilor necesare
În vederea atingerii unor funcționalități mai mult decât minimale, care să asigure fiabilitatea managementului și utilizarea corectă a datelor, este necesară crearea unor anumite proceduri sau funcții care să ii ofere utilizatorului acces la date, în timp real.
Pentru început putem să luăm spre exemplificare mecanismul de logare: orice utilizator care dorește să utilizeze aplicația, are nevoie de un cont specific compus dintr-un username și o parolă. Aplicația are nevoie de un mecanism de validare a celor două câmpuri, astfel încât prin intermediul unei proceduri stocate, se poate verifica dacă acestea coincid cu datele aferente din baza de date creată. În caz contrar, accesul în aplicație nu se poate realiza.
În cazul în care se realizează noi angajări, administratorul are acces la un modul de configurare ce ii permite să creeze conturi pentru angajații noi.
Pe lângă numele de utilizator care trebuie să fie unic, procedura de inserare a unui nou cont de utilizator, care se realizează prin adăugarea unui ID de tip „Guid” care are rolul de a diferenția utilizatorii și de a putea face legătura între alte tabele și cea de utilizatori.
Validarea câmpurilor reprezintă o altă funcție utilizată pentru un management sănătos al datelor, atât a celor de tip numeric cât și a celor de tip string (caractere), utilizatorul fiind obligat să adauge explicit date numerice în cazul tipului integer și date de tip caracter în cazul tipului de date string.
Pe lângă validările realizate asupra tipurilor de date, este necesară și validarea tuturor câmpurilor, și anume verificarea completării tuturor câmpurilor ce aparțin unui formular pentru a evita apariția unor erori în baza de date prin apelarea procedurilor de insert/update/delete, erori ce pot duce la rezultate eronate.
În cazul în care dorim să realizam modificări ale câmpurilor sau să ștergem dintr-o tabelă, valoarea atributului după care realizăm una din acțiunile amintite mai sus (update, delete) trebuie să corespundă cu valoarea unui câmp prezentă în fluxul de date (de obicei se face după ID-ul de tip Guid).
Dacă un utilizator vrea să interogheze baza de date prin intermediul unei comenzi, sistemul trebuie să verifice dacă este deschisă conexiunea cu serverul, pentru a realiza comunicarea cu fluxul de date din BD, efectuându-se astfel comanda dorită.
3.3. Proiectarea
3.3.1. Proiectarea bazei de date
Figura 8 -Schema bazei de date (diagrama conceptuală)
3.3.2. Proiectarea prelucrărilor
În vederea unei funcționări corecte, eficiente și rapide, baza de date creată (Fig 3) în vederea implementării aplicatiei are nevoie de o înșiruire de prelucrări reprezentate prin folosirea unor funcții și proceduri necesare pentru actualizare, inserare, validare și ștergere. În continuare vom exemplifica unele fragmente din algoritmii utilizați în vederea creării unei aplicații optime, funcționale și de un real succes pentru utilizatorii acesteia.
După cum am spus în capitolele anterioare, validarea datelor este foarte importantă în vederea apelării procedurilor de interogare a bazei de date. În continuare voi prezenta algoritmul de verificare și controlare a introducerii datelor de tip integer:
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
{
e.Handled = true;
}
if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
{
e.Handled = true;
}
}
Acest algoritm este implementat în formula de introducere a mâncărurilor, respectiv a rețetarului acestora. După cum se poate observa, utilizatorului nu ii este permis să introducă date doar dacă acestea sunt de tip integer (caractere de la 0 la 9). Validarea este realizată prin apelarea evenimentului “KeyPress”, aplicat asupra textbox-ului aferent introducerii prețului unei mâncări.
Pe lângă procedurile stocate, în unele situații se impune lucrul direct cu baza de date.
În vederea realizării acestui lucru se impune pe lângă restricțiile prezentate mai sus, și alte validări suplimentare pentru a evita coruperea datelor:
if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "")
{
try
{
String query = "INSERT INTO RES_Meniu (ID, Cod, Nume, Pret, Cantitate, Calorii) VALUES(@ID, @Cod, @Nume, @Pret, @Cantitate, @Calorii)";
SqlCommand comm = new SqlCommand(query);
comm.Connection = new SqlConnection(Properties.Settings.Default.ERPConnectionString);
comm.Parameters.Add("@ID",mancareID);
comm.Parameters.Add("@Cod", Cod);
comm.Parameters.Add("@Nume", NumeMancare);
comm.Parameters.Add("@Pret", Pret);
comm.Parameters.Add("@Cantitate", Cantitate);
comm.Parameters.Add("@Calorii", Calorii);
comm.Connection.Open();
comm.ExecuteNonQuery();
comm.Connection.Close();
}
catch(Exception ex)
{
MessageBox.Show("Nu se poate accesa BD!", ex.Message);
}
gridView.OptionsBehavior.Editable = true;
}
else MessageBox.Show("Completati toate campurile!");
După cum se poate observa, este necesară o nouă validare asupra câmpurilor, validare ce constă în verificarea tuturor câmpurilor obligatorii și întreruperea procesului de scriere în BD, în cazul în care elementele vitale nu au fost completate. De asemenea, se folosește un mecanism „try-cath”, ce previne aplicația din stopare, în cazul apariției unei erori neașteptate și afișează un mesaj de eroare ce previne utilizatorul în vederea faptului că acțiunea comandată nu a mai avut loc.
Utilitatea funcțiilor, algoritmilor și procedurilor de asemenea natură este importantă pentru programator, deoarece în acest mod se evită probleme precum introducerea unor date eronate ce pot duce la coruperea datelor existente, sau probleme ce constau în necompletarea datelor.
Prezentarea sistemului informatic
În această secțiune vom analiza partea tehnologică a aplicației realizate, urmărind pas cu pas funcționalitățile create și modul în care acestea acoperă domeniul de activitate abordat. Scopul sistemului informatic creat este de a gestiona o parte din activitatea zilnică a unui restaurant, și anume partea de front-end.
Ca în orice aplicașie informatică, este nevoie de un sistem de securitate bine pus la punct. De aceea prima parte a aplicației constă în modulul de logare cu ajutorul căruia ospătarii și managerii autorizați să folosească aplicația pot avea acces la datele corespunzatoare și la informațiile necesare desfășurării activității cotidiene.
Aplicația este gândită pe doua nivele:
nivelul 1 – administrator (manager, șef de sală)
și nivelul 2 – utilizator (ospătar, barman, etc).
Drepturile de admin sunt mult mai importante față de drepturile de user. Pentru logare este absolut necesar să introducem un username și o parolă corespunzătoare. Din motive de securitate, nu se pot crea noi conturi de utilizator din această fereastră, fiind necesară logarea pe un cont de aministrator și accesarea meniului de configurare.
Figura 9- Formularul de autentificare
Dacă ne-am autentificat cu succes în sistem, avem acces la meniul principal al aplicației, unde putem să desfășurăm diferite activități, în funcție de rolul pe care îl avem.
Figura 10-Formul principal
Primul buton – “Aplicație” ne oferă posibilitatea de a ne deloga din sistem (pentru a ne autentifica din nou sub forma altui user), sau de a ieși complet din aplicație, dacă preferăm această variantă.
Butonul de configurare este vizibil doar în cazul autentificării unui administrator și pune la dispoziție o serie de facilități de administrare și configurare a conturilor de utilizatori, permițând astfel gestiunea angajaților ce au drept de acces la aplicație.
Figura 11 – Configurare conturi utilizatori
După cum se poate observa din imaginea de mai sus, administratorul poate introduce noi conturi de utilizator și poate modifica sau afișa parole în funcție de necesitate. De asemenea, în cazul în care un utilizator uită parola unui cont existent, aceasta poate fi recuperată.
Al treilea buton deschide formularul în care se afișează nomenclatorul de produse, unde putem să vizualizam și să modificăm produsele existente, sau putem să actualizăm nomenclatorul prin adăugarea/ștergerea unor produse.
Figura 12- Nomenclator Produse
Nomenclatorul prezentat reprezintă un gridview cu trei coloane care permite vizualizarea situației produselor existente și descrierea acestora prin afișarea denumirii produsului, unității de măsură și prețului de intrare.
Al patrulea buton reprezintă un alt nomenclator, respectiv cel al mâncărurilor ce se regăsesc în meniu, precum și a rețetarului acestora. Astfel, dacă vrem să introducem un nou tip de mâncare din varii motive (avem un nou specific, un nou bucătar, etc), avem posibilitatea să utilizăm următorul formular:
Figura 12- Adaugare mancaruri
Pentru a adăuga în nomenclator un nou tip de mâncare este necesar să-i stabilim un nume, un preț de vânzare, o greutate/porție și un număr de calorii acumulat în urma consumării acesteia. După ce am analizat și setat toate aceste criterii, apăsăm pe butonul denumit “Adaugă mâncare”, acesta deblocând gridview-ul din josul paginii, gridview corespunzător rețetarului. Aici introducem produsele din care este realizată mâncarea respectivă, precum și cantitățile corespunzătoare.
După ce realizăm acest lucru, mâncarea se va afișa automat în meniul restaurantului, nefiind necesară nicio altă operațiune.
Urmează a fi prezentat formularul cel mai important din aplicație, și anume cel care definește tipul de activitate al acesteia. Este vorba de formularul în care se regăsesc mesele din restaurant, dispuse corespunzător, precum și posibilitățile de lucru cu acestea. Astfel, se vor observa mesele numerotate consecutiv conform nomenclatorului, butonul de rezervare, precum și un textbox în care se introduce numele mesei ce urmează a fi rezervată.
Figura 14 – Interfața principală – forma meselor
Culorile reprezintă starea mesei la momentul actual și anume:
Roșu – ocupat
Verde – rezervat
Gri – liber
Pentru a ocupa o masă, mai exact pentru a prelua comanda avută la o masă este necesar să apăsăm un simplu click pe masa în cauză și se va deschide formul destinat pentru preluarea comenzii.
În cazul în care dorim să rezervăm o masă, este suficient să-i scriem numărul în textbox-ul din partea de sus a ecranului și să apăsăm pe butonul rezervare. În acest moment culoarea mesei se transformă în verde și astfel, orice anagajat care utilizează aplicația poate să observe faptul că masa este rezervată.
O masă redevine liberă în momentul în care se eliberează bonul fiscal corespunzător comenzii avute la masa respectivă.
Pentru a prelua comenzi avem la dispoziție următoarea fereastră:
Figura 15- preluare comenzi
După cum se poate observa, la masă au fost comandate două omlete simple și o pizza.
Pentru a adăuga un nou rând la comandă este necesar să apăsam pe rândul alb unde scrie “Introduceți comandă nouă!” și să alegem din lista de mâncăruri (produs comandat) ce dorește clientul. În momentul în care am ales mâncarea coloana “Preț” ne afișează imediat prețul corespunzător, iar cantitatea comandată se setează implicit pe valoarea 1.
Această setare se face deoarece un client comandă minim un produs și nu poate să comande valori negative sau egale cu 0 – este o metodă de verificare și validare a datelor. Valoarea prețului nu poate fi modificată, deoarece este stabilită din nomenclatorul de mâncăruri, acesta fiind prețul unic de vânzare.
În momentul în care apăsăm butonul denumit “Salvează”, comanda a fost automat adaugată în sistem, iar masa devine ocupată (i se schimbă culoarea în roșu).
Când clientul se hotărăște să achite nota, intrăm în același mod (un simplu click) pe masa corespunzătoare și vom vedea toate produsele comandate de către acesta. Avem la dispoziție și butonul “Bon fiscal”, ce ne va elibera bonul, va afișa un raport ce reprezintă bonul fiscal, calculând în mod automat cât are și ce are de plată clientul.
Putem să revenim în orice moment asupra mesei și să mai adăugăm produse (mâncăruri) cerute de către client pe tot parcursul șederii acestuia, acestea adăugându-se automat la nota de plată, prin înregistrarea în tabelele corespunzătoare din sistem.
Din analiza fluxului de lucru, a reieșit faptul că un ospătar nu are dreptul de a șterge produse de pe nota de plată din momentul în care acestea au fost salvate, deoarece contravine bunei funcționări a restaurantului. În acest caz un client nu poate să renunțe la produsul comandat o dată cu înregistrarea acestuia în sistem, deoarece așa a fost gândită politica firmei.
În continuare vom prezenta bonul fiscal, necesar pentru tipărire și înmânare clientului, reprezentând nota de plata. Totodată, fără generarea bonului fiscal, masa nu poate fi scoasă de pe starea de ocupat.
Figura 16 –Bon Fiscal
Bonul fiscal poate fi tipărit în două cazuri: plata cu card sau plata cash
Figura 17- Tipuri de plati
Angajatul are în orice moment atât posibilitatea de a consulta meniul restaurantului direct din aplicație prin intermediul butonului denumit corespunzător “Meniu Restaurant”, cât și posibilitatea de a-l tipări.
Figura 18 – Meniu Restaurant
De asemenea, aplicația pune la dispoziția managerului rapoarte de vânzări pentru fiecare masă în parte, pentru toate mesele din restaurant, la orice dată dorește să vizualizeze rapoartele în cauză. Se pot genera atât Jurnale de vânzări cantitative, cât și Jurnale de vânzări valorice, în funcție de preferința și necesitatea acestuia.
Figura 19 – Jurnal Valoric pentru ziua de 16.06.2015
Pentru a-și face reclamă, dar și pentru a preveni distribuirea sau furtul sistemului informatic fără acordul creatorului, există un ultim buton care pune la dispoziție date despre producător, aplicație, anul producției și alte informații utile companiei.
Figura 20 – Despre aplicație
Concluzii
În urma analizării, proiectării și implementării soluției informatice, se pot trage anumite concluzii privind modul de realizare al acesteia, eventualele dezvoltări viitoare, precum și gradul de acoperire al funcționalităților necesare operatorilor de zi cu zi.
Lucrarea curentă și-a propus să vizeze principalele atribuții ale unui program informatic de gestiune a unui restaurant.
Formularele create reușesc să atingă principalele scopuri ale aplicației, și chiar să îmbunătățească fluxul de lucru al unor aplicații existente pe piață.
Principalele atuuri ale sistemului sunt: flexibilitate, rapiditate și utilitate.
Soluția informatică creată și prezentată mai sus, oferă angajaților ce utilizează aplicația o gamă largă de formulare ce au ca principale calități ușurința în completare și o interfață prietenoasă care ajută vizual în orientarea deciziilor.
Consider că prin utilizarea aceluiași mod de introducere al datelor pe tot parcursul utilizării aplicației, și anume utilizarea gridview-urilor pentru afișare/modificare/ștergere și inserare de date facilitează utilizatorului usurință în învățare, capacitatea de utilizare și îmbunătățește timpul de lucru al acestuia, având rezultate foarte rapide în timp real.
Prin integrarea metodelor specifice de securitate , afișarea mesajelor de eroare și prin modul simplu de accesare și ușoară învățare, reprezintă o bună soluție pentru orice companie care are în plan utilizarea unei aplicații performante pe care angajații săi să reușească sa o stăpânească și să o utilizeze cu succes într-un timp foarte scurt.
Cu toate că nu este cea mai bună soluție software de gestiune a unui restaurant la ora actuală, sistemul informatic creat dispune de unele din cele mai importante funcționalități țintite de către aplicațiile mamut.
În viitorul apropiat, am ca scop dezvoltarea și implementarea altor funcționalități specifice, cu scopul de a reuși o acoperire mai vastă a cerințelor oricărui manager de restaurant.
Îmi doresc să implementez funcționalități diverse, cum ar fi “split nota” pentru ca aplicația să poată fi implementată cu succes în orice companie ce activează în domeniu.
Bibliografie
[1]-Mihalca R.,Uță Adina, Fabian Cs.,Intorsureanu I.,Andreescu A.,Jisa D.-“Modelare Orientata Obiect”, Edit. ASE , 2009
[2]- Manole Velicanu-“Baze de date prin exemple”, Edit. ASE, 2007
[3]- Ion Lungu – “Baze de date Oracle limbajul SQL”, Edit. ASE, 2005
[4]- Ion Smeureanu, Marian Dardala, Adrian Reveiu – “Visual C# .Net”,Edit. Cison
[5]- Charles Petzold -“ Programare Windows cu C#”, Edit. Teora, 2008
[6]- *** msdn.microsoft.com/
[7]- *** www.wikipedia.com/
[8]- ***www.scribd.com/
[9]- https://posnet.ro/
[10] – http://www.s2s.ro/index.php?go=det&m=6
[11] – http://www.freyasoft.ro/
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: Sistem Informatic Pentru Optimizarea Activitatii In Cadrul Unui Restaurant (ID: 150515)
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.
