Aplicatie Informatica Privind Calculul Salariilor Si a Concediilor de Odihna la S.c. Flexibil S.r.l

APLICAȚIE INFORMATICĂ PRIVIND CALCULUL SALARIILOR ȘI A CONCEDIILOR DE ODIHNĂ LA SC FLEXIBIL SRL

Rezumat: În cadrul acestei lucrări de licență, intitulată ”Aplicație informatică privind calculul salariilor și a concediilor de odihnă”, am elaborat o aplicație informatică care permite introducerea/modificarea datelor angajaților, calculul salariilor și a concediilor de odihnă de care aceștia au parte. Lucrarea este structurată în cinci capitole, cu mai multe subcapitole, urmate de o listă cu referințe bibliografice. În primul capitol am prezentat o mică introducere al acestei lucrări. În capitolul 2 am prezentat formulele cu ajutorul cărora se calculează salariul și concediile de odihnă. În capitolul 3 am introdus aspecte privind datele generale, un scurt istoric privind întreprinderea, activitatea și resursele umane, principalele activități și structura organizatorică, ale firmei S.C FLEXIBIL S.R.L. În capitolul 4 am prezentat scopul aplicației și obiectivele parțiale, după care am prezentat modul de creare a bazei de date, creată în SQL Server Management Studio. În capitolul cinci am făcut o descriere detaliată a aplicației informatice pentru calculul salariilor și a concediilor, începând de la prezentarea pe scurt a unor instrumente ajutătoare urmată de o descriere detaliată a aplicației propriu-zisă – crearea acesteia (Microsoft Visual Studio 2010) și rularea pe calculator.

Cuvinte cheie: salar, concedii, detalii angajat, taxe, calculator salarii

Cod-uri JEL: G00

Introducere

Munca a fost întotdeauna, și va fi în continuare motorul care duce la dezvoltarea societății. De-a lungul istoriei, caracterul muncii a cunoscut diferite etape. Astfel oamenii primitivi munceau pentru sine, cei care au trăit în perioada sclavagistă erau obligați să muncească în folosul altora, primind de la aceștia doar ce era necesar pentru a putea lucra în continuare. Capitalismul este cel care a transformat munca în ceea ce este astăzi, și anume o sursă de creștere a bunăstării fiecăruia. În această etapă au fost elaborate legi care reglementau faptul că “munca se prestează conform unui contract încheiat între parteneri egali, dintre care unul își oferă forța de muncă, iar celălalt plata convenită la încheierea contractului”.

De-a lungul secolelor, noțiunea de salariul și-a modificat și diversificat semnificația.

Clasicii economiei politice considerau salariul un venit ce recompensează munca, mărimea acestuia oscilând în jurul nivelului natural. Substanța salariului și mărimea lui erau explicate prin ceea ce economiștii clasici au numit teoria costului formării resurselor de muncă. Într-o asemenea optică, salariul este definit ca sumă de bani prin care se asigură strictul necesar pentru întreținerea salariatului și a familiei sale.

Într-un cadru general, salariul este venitul prin (cu) care se remunerează munca salariată în întreprinderi și administrații. El nu este o remunerație oarecare a muncii, ci numai un mod foarte special de recompensare, anume prețul unei munci închiriate și întrebuințate de un întreprinzător, de un agent economic utilizator pe bază de contract.

Întrucât munca efectuată presupune cheltuirea forței vitale a omului, este necesar, ca ziua de muncă să se încadreze în anumite limite, să fie numai o parte dintr-o zi de viață iar anual să aibă parte de concediu de odihnă.

Concediul de odihnă are influență pozitivă asupra sănătății salariaților deoarece le oferă posibilitate de recreere, acest lucru duce și la creșterea randamentului muncii. Potrivit art.139 Dreptul la concediu de odihnă anual plătit este garantat tuturor salariaților. Durata minimă a concediului de odihnă anual este de 20 de zile lucrătoare. Durata efectivă a concediului de odihnă anual se stabilește prin contractual individual de muncă și se acordă proporțional cu activitatea prestată într-un an calendaristic.

Deoarece firma SC FLEXIBIL SRL are în jur de 100 de angajați, se pierde foarte mult timp dacă salariul și concediul anual este calculat manual, din acest punct de vedere mi-am propus să elaborez o aplicație informatică care ajută la calcularea salariului care revine fiecărui angajat în parte (lunar), zilele de concediu de care dispune angajatul, precum și un mod sigur de-a stoca datele angajaților. Dacă evidența angajaților este ținută pe hârtie cu timpul se pierd date din cauza deteriorării hârtiei, iar în caz de calimități se pierd toate datele.

Prezenta lucrare este structurată în cinci capitole. În capitolul 2 apar formulele de calcul al salariului și a zilelor de concediu de odihnă. Pentru calculul salariului apar câteva contribuții obligatorii: contribuția CAS, contribuția de sănătate, contribuția de șomaj. În unele situații se beneficiază și de o deducere personală, care ține cont de numărul de persoane aflate în întreținere și mărimea salariului. În urma plății contribuțiilor salariale, pe suma rămasă se percepe un impozit de 16%. Angajații firmei Flexibil au parte de 22 de zile de concediu pe an.

În capitolul 3, apare o prezentare generală a societății, începând de la denumirea societății, forma de organizare, administratorul, acționarii, sediu social urmată de un scurt istoric al întreprinderii care prezintă etapele de dezvoltare a firmei din momentul creării primului atelier până în momentul actual. Apoi este prezentat un scurt istoric din punct de vedere a activității, diversificarea produselor și modul de intrare pe piață, urmat de un scurt istoric al resurselor umane. Sunt prezentate principalele activități ale întreprinderii reprezentate prin coduri CAEN, structura producției la momentul actual și modul de impunere a prețurilor. Structura organizatorică este prezentată sub forma unei organigrame. În următorul capitol am descris scopul aplicației cu obiectivele parțiale și structura bazei de date “Resurse umane” în care apar diverse capturi de ecran printre care și diagrama bazei de date.

În ultimul capitol este prezentat modul de creare a aplicației în care apar comentate diverse capturi de ecran și unele părți din cod.

Bibliografia apare pe ultima pagină a lucrării. Lucrarea se bazează pe surse din diverse cărți, cursuri, precum și surse web.

Obiective:

Efectuarea unui studiu de caz în cadrul companiei SC FLEXIBIL SRL;

Identificarea nevoilor companiei cu privire la stocarea datelor, calculul salariilor și a concediilor de odihnă a personalului angajat;

Studierea posibilităților de a implementa soluțiile identificate în urma studiului de caz;

Alegerea tehnologiilor care pot fi folosite pentru a implementa o aplicație, care să ducă la satisfacerea nevoilor și cerințelor companiei;

Testarea aplicației.

Calculul salariului și a zilelor de concediu de odihnă

Salar net = Salariul brut – Contribuția de șomaj – Contribuția de sănătate – Contribuția CAS- – Impozit

2.1 Taxe angajat:

Contribuția la fondul de șomaj – 0.5% din Salariul brut

Contibuția la asigurările sociale de sănătate (CASS) – 5.5% din Salariul brut

Contibuția la asigurările sociale (CAS) – 10.5% din Salariul brut
(conform Legii nr.380/2005 privind bugetul asig. soc 2006)

Deducere personală1 (Conform Ordinului 1016/2005) care se calculează în funcție de : – numărul de persoane aflate în întreținere;

-salariul brut.

* deducerea nu se oferă în cazul salariilor în afara funcției de bază.

Impozit – 16% din (Salariul brut-Contribuția șomaj-Contribuția sănătate-Contribuția CAS-Deducerea personală)

Unele întreprinderi oferă și tichete de masă, în acest caz, se percepe impozit și pe valoarea lor. Deci, formula va arăta așa:

Impozit – 16% din ((Salariul brut + Valoare tichete)) – Contribuția șomaj – Contribuția sănătate – Contribuția CAS – Deducerea personală)

1Deducerea personală se acordă persoanelor angajate pe teritoriul României cu contract de muncă, indiferent de natura acestuia, la acel angajator unde salariatul își declară funcția de bază, în felul următor (crește progresiv cu 100 lei pentru fiecare persoana declarată “în întreținere”) :

la un venit brut mai mic sau egal cu 1.000 lei, angajatul beneficiază de următoarele deduceri:

250 lei pentru salariații care nu au persoane în întreținere;

350 lei pentru salariații care au o persoană în întreținere;

450 lei pentru salariații care au 2 persoane în întreținere;

550 lei pentru salariații care au 3 persoane în întreținere;

650 lei pentru salariații care au 4 sau mai multe persoane în întreținere.

la un venit brut cuprins între 1.001 lei și 3.000 lei, angajatul beneficiază de următoarele deduceri:

250 x [1-(VB-1.000)/2.000] pentru salariații care nu au persoane în întreținere;

350 x [1-(VB-1.000)/2.000] pentru salariații care au o persoana în întreținere;

450 x [1-(VB-1.000)/2.000] pentru salariații care au 2 persoane în întreținere;

550 x [1-(VB-1.000)/2.000] pentru salariații care au 3 persoane în întreținere;

650 x [1-(VB-1.000)/2.000] pentru salariații care au 4 sau mai multe persoane în întreținere;

la un venit brut de peste 3.000 de lei, angajatul nu beneficiază de deducere personală nici pentru el însuși nici pentru persoanele aflate în întreținerea lui.

Indiferent dacă o persoană intră în întreținere începând cu prima zi a lunii sau pe parcursul lunii, salariatul va beneficia de deducerea personală aferentă acestuia, în suma integrală aferentă unei luni întregi.

Valoarea deducerii personale nu se fracționează în cadrul lunii, ea se acorda o singură dată în lună de către un singur angajator.

La angajare, pentru a beneficia de această deducere, salariatul trebuie să depună la departamentul de resurse umane o declarație prin care iși exprimă opțiunea de a avea funcția de bază la acel angajator sau nu. De asemenea, prin același document, el poate informa compania și despre persoanele pe care le are în întreținere. Declarația trebuie însoțită de documente care să justifice că respectivele persoane pot avea calitatea de “persoană în întreținere” și respectă prevederile din Codul Fiscal (ex.: copi după certificatul de căsătorie, certificatele de naștere ale copiilor, adeverință de venit a persoanei întreținute sau declarația pe propria răspundere că nu realizează venituri mai mari decât cele acceptate de lege etc.). Persoanele aflate în întreținere pot avea sau nu domiciliu comun cu salariatul în a cărui întreținere se află.

Conform Codului Fiscal, art.56, persoana în întreținere poate fi soția/soțul, copiii sau alți membri de familie, rudele salariatului sau ale soțului/soției acestuia până la gradul al doilea inclusiv, ale cărei venituri, impozabile si neimpozabile, nu depășesc 250 lei lunar.

2.2 Taxe angajator:

Contribuția la fondul de șomaj – 0.5% din Salariul brut

Contribuția la fondul de asigurări de sănătate (CASS) – 5,2% din Salariul brut

Contribuția la asigurările sociale (CAS) – 20,8% din Salariul brut

Contribuția la fondul de risc și accidente (FNUASS) – 0,5% din Salariul brut

Contribuția la fondul de garantare a creanțelor salariale – 0,25% din Salariul brut

Contribuția pentru concedii de boală și indemnizații – 0,85% din Salariul brut

Salariul Complet reprezintă constul total al angajatorului cu salariul, și anume:

Total taxe angajat + Total taxe angajator + Salar net, sau

Salar brut + Total taxe angajator;

Total taxe angajat + Total taxe angajator ne arată suma care este plătită statului.

2.3 Număr zile concediu

Angajații întreprinderii dispun de un anumit număr de zile de concediu, în cazul nostru este un număr de 22 de zile. Pentru a putea calcula pentru fiecare angajat în parte, aceste 22 de zile se împart la cele 12 luni ale anului. Rezultatul fiind, zilele de concediu oferite într-o lună. Dacă se dorește calcularea pe zile atunci cele 22 de zile se împart la cele 12 luni după care rezultatul se împarte la zilele lunii (un e cazul nostru).

Pentru fiecare angajat, care are mai puțin de 12 luni de când este angajat, se află numărul lunilor lucrate (nu e obligatoriu să fie număr întreg, exemplu: 2,5 = 2 luni și 2 săptămâni) și se înmulțește cu zilele de concediu de care au parte într-o lună.

Formula de calcul arată așa:

Număr zile concediu = (22 zile / 12 luni) * număr luni lucrate angajat.

Studiu de caz.

3.1 Prezentarea generală a societății S.C. FLEXIBIL S.R.L.

Denumire societate: S.C. FLEXIBIL S.R.L.

Forma de organizare: societate cu răspundere limitată (S.R.L.)

Numele complet al administratorului și al acționarilor:

Borota Daniel – administrator și asociat, cota de participare 51%

Borota Ilie – asociat, cota de participare 30%

Borota Nicolae – asociat, cota de participare 19%.

Sediu social: Cod Postal 437229, Sat Săsar, Comuna Recea, Strada Subdura numărul 3, Județul Maramureș.

Activitatea administrativă și de producție (activitatea de producție se desfășoară pe suprafața de 4.400 mp) a societății Flexibil S.R.L. se desfășoară la aceeași adresa cu sediul social, într-o zonă industrială, în mediul rural, a comunei Recea.

Societatea dispune și de un punct de lucru situat in localitatea Baia Sprie, Str. Cărămizilor nr. 55, jud. Maramureș, unde desfășoară activități de depozitare a materiilor prime (table, bare, etc.) necesare procesului tehnologic propriu.

Societatea este învecinată la nord cu o societate de transport marfă, la est un depozit de piese auto și spre vest cu teren agricol, proprietate privată.

Zona rezidențială se află în partea de sud la peste 600 de metri distanță de sediul societății și este separată de râul Săsar și de un teren care este imașul satului Săsar.

Societatea are acces la șoseaua E 58 Baia Mare – Satu Mare printr-o stradă secundară în lungime de 800m.

Are ca obiect principal de activitate codul CAEN: 2219 „Fabricarea altor produse din cauciuc” și ca obiect de activitate secundar: cod CAEN: 2562 “Operațiuni de mecanică generală”.

3.2 Scurt istoric

a) Întreprindere

Evoluția întreprinderii S.C. Flexibil S.R.L. începe din 1974 când în cadrul familiei Borota se crează, prin cooperație, un atelier pentru producerea articolelor din cauciuc prin matrițare.

Atelierul era situat în Baia Mare și avea o suprafață de producție de 30 m². Pe structura acestui atelier, în 1992 se crează societatea comercială, integral privată, FLEXIBIL și asimilează și producerea articolelor din cauciuc – metal.

Pentru a crește operativitatea livrărilor, începând cu anul 1994 S.C. FLEXIBIL S.R.L., își creează un atelier propriu de producere a matrițelor și armăturilor din metal pentru execuția componentelor anti vibrații din cauciuc vulcanizat pe metal.

În 1998 societatea își schimbă sediul în Săsar (localitate de lângă Baia Mare) și achiziționează o hală de producție de 500 m².

În anul 2000 Flexibil asimilează execuția amestecurilor din cauciuc și își creează un departament de cercetare și dezvoltare a acestora.

Din anul 2001 societatea a început să-și extindă piața de desfacere pe piețele externe, aceasta devenind o parte importantă a activității societății. În 2001 societatea primește certificarea Sistemului de Management al Calității conform standardului ISO 9002, iar în 2003 aceasta primește și certificarea ISO 9001:2000.

Începând cu anul 2004 Flexibil intră pe piața componentelor anti vibrații din cauciuc vulcanizat pe metal pentru industria vehiculelor de cale ferată.

Din anul 2006 marca „FLEXIBIL” este protejată atât pe piața internă cât și pe piața europeană.

Prin construcția unei hale în anul 2008 și a alteia în anul 2011, spațiul de producție al societății depășește 4300 m². Începând cu anul 2009, capacitatea de cercetare a societății crește semnificativ.

b) Activități

Începând cu 1974, anul înființării atelierului prin cooperație în cadrul familiei Borota și până în 1992 s-au produs în jur de 20 de tipuri de articole din cauciuc pentru domeniul auto.

În anul 1992 se creează societatea comercială, integral privată, FLEXIBIL care de la înființare asimilează și execuția componentelor anti vibrații din cauciuc vulcanizat pe metal pe lângă producerea articolelor din cauciuc.

Pentru a crește operativitatea livrărilor, începând cu 1994 S.C. FLEXIBIL S.R.L., își creează un atelier propriu de producere a matrițelor și armăturilor din metal pentru execuția componentelor anti vibrații din cauciuc vulcanizat pe metal. Piața societății o constituia piața pieselor de schimb a autoturismelor din România.

Începând cu anul 1995 societatea intră pe piața pieselor de schimb din cauciuc și cauciuc vulcanizat pe metal, a autobuzelor și a camioanelor.

Începând cu anul 1999 strategia firmei este de a se retrage de pe domeniul autoturismelor și a se focusa pe produse de dimensiuni mai mari și executate în serii mai mici.

În anul 2000 Flexibil asimilează execuția amestecurilor din cauciuc și își creează un departament de cercetare și dezvoltare a acestora pentru a executa amestecuri din cauciuc de înaltă calitate și specializate pentru diferite aplicații.

Începând cu anul 2004 Flexibil intră pe piața componentelor anti vibrații din cauciuc vulcanizat pe metal, pentru industria vehiculelor de cale ferată, a utilajelor din construcții și diverselor utilaje industriale din Elveția și Uniunea Europeană.

Începând cu anul 2008 societatea se retrage de pe piața pieselor de schimb din cauciuc și cauciuc vulcanizat pe metal a autobuzelor și a camioanelor și se focusează pe piața componentelor anti vibrații din cauciuc vulcanizat pe metal pentru industria vehiculelor de cale ferată, a utilajelor din construcții și diverselor utilaje industriale, o piață cu serii relativ mici dar cu cerințe calitative înalte .

Societatea a început încă din anul 2006 un amplu proces de modernizare și retehnologizare a producției în vederea satisfacerii cât mai bune a cerințelor și exigențelor clienților, proces aflat și în continuare în derulare.

Societatea are asimilat în procesul de fabricație peste 2000 de diferite tipuri de produse iar ritmul de asimilare de produse noi este peste 100 pe an.

c) Resurse umane

Datorită situației economice mondiale, societatea a decis eficientizarea activității de producție prin creșterea productivității muncii și în special a profitului societății tinând sub control strict cheltuielile legate de materiile prime și personal. Datorită acestei decizii, numărul mediu de salariați ai societății în anul 2009 a fost de 62, comparativ cu media de 72 din anul 2008.

Anul 2010 și 2011 a însemnat o creștere ușoară a numărului mediu de salariați, ajungând la 65, respectiv 68 persoane, iar în 2012, 2013 numarul mediu de angajati a continuat să crescă ajungând la 71, respectiv 72 de persoane. În prezent are un număr de 81 de angajați. Dintre aceștia un număr de 20 persoane au studii superioare. De asemenea, mai multe persoane din cadrul S.C. FLEXIBIL S.R.L. au beneficiat de programe de școlarizare cu diferiți experți internaționali, pe diferite perioade de timp, în domenii ca: management, marketing, juridic, organizarea producției, cât și în domeniul tehnic.

3.3 Principalele activități

S.C. FLEXIBIL S.R.L. are următoarele coduri CAEN ca obiecte de activitate:

2219 „Fabricarea altor produse din cauciuc”- obiect principal de activitate

2562 “Operațiuni de mecanică generală” (Această clasă include: – operațiuni

de găurire, strunjire, frezare, erodare, rabotare, mortezare, filetare, lepuire, broșare, nivelare, debitare, rectificare, ascuțire, polizare, sudare, matisare (îmbinare) etc. a pieselor din metal; – activitățile de tăiere și gravare cu fascicul laser a metalelor) – obiect de activitate secundar.

Produsele realizate de către S.C. FLEXIBIL S.R.L. fac parte din categoria tampoanelor și amortizoarelor ce se montează pe boghiuri, tranvaie și vagoane de pasageri (componente din cauciuc – metal cu aplicații în domeniul vehiculelor de cale ferată).

Datorită specializării societății pe producția de unicate, serii mici și mijlocii, aceasta dispune de o gamă foarte largă de produse, mai jos sunt prezentate doar câteva exemple generice de produse realizate de către firma Flexibil:

tampone din cauciuc – metal;

amortizoare din cauciuc – metal;

suporți de amortizare a șocurilor, din cauciuc – metal;

montaje anti-vibratorii, din cauciuc – metal;

articulații multistrat pentru amortizarea șocurilor;

placi cauciuc – metal pentru amortizarea șocurilor;

amortizoare multistrat din cauciuc – metal;

articulații sferice pentru amortizarea șocurilor;

bucșe din cauciuc – metal, etc.

La momentul actual structura producției societății este următoarea:

80% din totalul producției este reprezentată de componentele din metal – cauciuc;

20% din totalul producției este reprezentată de componentele executate numai din cauciuc.

Prețurile practicate de societate sunt calculate în corelație strânsă cu costurile de producție ale fiecărui produs în parte, cantitatea produsă din fiecare reper precum și complexitatea produselor, antecalculația și postcalculația costurilor totale ale produselor realizându-se cu ajutorul softului ERP Navision și a altor softuri din cadrul societății.

Aceste prețuri sunt negociate cu fiecare client în arte și sunt prezentate în ofertele specifice de produs și comenzile ferme din partea clienților.

3.4 Structura organizatorică din punct de vedere a departamentelor și a numărului de locuri disponibile/post

Fig 3.1 Organigrama Flexibil Srl

Scopul aplicației. Obiective parțiale

Această aplicație permite adăugarea, ștergerea sau modificarea datelor, fără a fi necesar să se apeleze la ajutorul administratorului bazei de date, ori de câte ori vor apărea modificări referitor la datele personale ale angajaților sau în cazul în care societatea va angaja sau va face reduceri de personal. Este destinată în primul rând pentru calculul salariului și a zilelor de concediu.

Scopul aplicației este de a reduce erorile de calcul, cât și efortul uman depus pentru calcularea salariului și a zilelor de concediu de care dispune fiecare angajat în parte. Cu cât salariile sunt calculate înr-un timp mai redus și corect, cu atât angajații vor fi mai motivați.

La momentul pornirii aplicației se deschide o fereastră de autentificare. În urma logării se deschide o fereastră cu o bară de meniu din care se alege fereastra pe care se dorește să se lucreze:

Dacă se alege “Detalii” se deschide un submeniu cu: “Funcții și Departamente ” – este o fereastră de unde se poate alege o funcție existentă și departamentul din care face parte, “Detalii angajat” – în această fereastră se pot face modificări asupra datelor personale ale angajaților: adresă, serie C.I., stare civilă, etc. sau modificarea salariului brut sau a plății pe oră, tot aici se poate șterge sau adăuga un nou angajat, și “Copiii angajaților” – această fereastră conține date despre copiii angajaților.

Dacă se alege “Calcul Salarii” se deschide o fereastră unde se calculează salariul.

Pentru a calcula zilele de concediu se alege meniul “Calcul zile concediu”.

Dacă sunt deschise mai multe ferestre, cu ajutorul meniului “Ferestre” se poate alege fereastra care să devină curentă.

Fereastra de autentificare a fost creată pentru a preveni accesul unor persoane care ar putea face modificări eronate, în datele angajaților.

Aplicația trebuie:

-să permită vizualizarea funcțiilor și departamentelor firmei;

-să permită modificarea datelor angajaților – inclusiv a copiilor acestora;

-să permită ștergerea/adăugarea unui nou angajat;

-să calculeze salariile angajațiilor după formula de calcul de la capitolul 2 “Calculul salariului”;

-să afișeze fiecare cheltuială cu salariul, în parte (impozit, CAS, CASS, etc.);

-să afișeze salariul net;

-să afișeze sumele detaliate (fluturașul de salar):

* sume referitoare la angajat;

* sume referitoare la angajator (cheltuielile cu salariul angajatului).

-să calculeze zilele de concediu de care are parte fiecare angajat.

4.1 Realizarea bazei de date

4.1.1 Tehnologia folosită

Pentru crearea bazei de date am folosit SQL Server care este un DMBS (Data Base Management System) – sistem pentru gestiunea bazelor de date, produs de compania americană Microsoft Corp. Limbajele primare de interogare sunt MS-SQL și T-SQL. Este un sistem pentru întreprinderi care se poate aplica bazelor de date de dimensiuni foarte mari sau de dimensiuni mici.

La toate întreprinderile, datele sunt foarte importante, unele fiind chiar confidențiale din această cauză cea mai mare dorință este de-a exista securitate. SQL Server rezolvă și această problemă a securității oferind administratorului posibilitatea de-a configura accesul pe nivele de securitate. Folosind T-SQL sau SQL Server Management Studio(în cazul nostru), se poate controla accesul la o anumită instanță din SQL Server, la o anumită bază de date, la anumite obiecte din cadrul acestor baze de date, și chiar la coloane dintr-un anumit tabel.

SQL Server oferă un set de componente și unelte care permit proiectarea unor baze de date eficiente, flexibile și extreme de disponibile pentru organizația în cauză.

Fîcând un rezumat putem spune despre Microsoft SQL Server că este o soluție integrată de management și analiză a datelor, care ajută organizațiile de orice dimensiue să:

dezvolte, implementeze și administreze aplicații la nivel de întreprindere mai sigure, scalabile și fiabile;

maximizeze productivitatea IT prin reducerea complexității creării, implementării și administrării aplicațiilor pentru baze de date;

controleze costurile fără a sacrifica performanța, disponibilitatea, scalabilitatea sau securitatea.

4.1.2 Structura bazei de date – Resurse Umane

Pentru crearea și modificarea bazei de date am folosit SQL Server Management Studio, este un instrument folosit atât la dezvoltarea soluțiilor bazei de date SQL Server, la crearea și modificarea componentelor acesteia, cât și pentru rezolvarea problemelor de securitate. Este o interfață grafică cu utilizatorul (GUI – Grapical User Interface), Fig. 4.1 SSMS interfață grafică pentru SQL Server.

Un avantaj care ni-l oferă SSMS este că ne permite vizualizarea în paralel a două ferestre. Acest lucru este posibil doar în momentul în care avem doua tabele deschise, indiferent că este Design sau Edit, prin apăsare de click dreapta și selectarea opțiunii ”New Horizontal Tab Group” sau ”New Vertical Tab Group”, cele două tabele din figura Fig. 4.4 Tipuri de chei, sunt afișate în acest mod.

Fig. 4.1 SSMS interfață grafică pentru SQL Server

Panoul Object Explorer, în urma conectării, afișează detaliile fiecărui obiect existent, restrânse în noduri (pentru detalierea fiecărui nod se face click pe semnul +, Fig. 4.2 Tabelele din baza de date Resurse umane). Pentru a vedea bazele de date existente se extinde nodul Databases iar pentru a crea o noua bază de date, se face click dreapta pe Databases New Database. Panoul Error List afișează erorile de compilare sau sintaxă existente in cod. Panoul Properties Window prezintă proprietățile fiecărui obiect (aceste 2 panouri se văd în Fig. 4.2 Tabelele din baza de date Resurse umane).

O bază de date reprezintă un ansamblu structurat de obiecte care grupează datele prelucrate în aplicațiile informatice ale unei persoane, grup de persoane, întreprinderi etc.

Formal, baza de date mai poate fi definită ca o colecție de date aflate în interdependență, împreună cu descrierea datelor și a relațiilor dintre ele.

Într-o abordare mai analitică, o bază de date este un ansamblu de date structurate, coerente, neredundante (se găsesc în mai multe părți ale programului informatic), direct accesibile după mai multe criterii.

Baza de date conține tabele (Fig. 4.2 Tabelele din baza de date Resurse umane) formate din coloane și rânduri.

Fig. 4.2 Tabelele din baza de date Resurse umane

Diagrama ”Relatii” (Fig. 4.3 Diagrama bazei de date Resurse umane) ne arată relațiile dintre tabelele bazei de date. O relație este o asociere stabilită între coloanele comune din două tabele. Există trei tipuri de relații: unu la unu, unu la mai mulți, mai mulți la mai mulți. În diagrama noastră relația dintre tabelul Angajați și tabelul Salarii este o relație de tipul unu la unu deoarece angajatul poate avea doar un salar și în tabelul Salarii poate apărea angajatul o singură dată.

Relația unu la mai mulți este evidențiată între tabelele Angajați și Copiii Angajaților, angajații pot avea mai mulți copii dar copiii nu pot avea ca și părinți pe mai mulți angajați.

Cea mai des întâlnită este relația mai mulți la mai mulți, această relație este evidențiată între tabelele Departament -> Funcții, Funcții -> Angajați, un departament poate avea mai multe funcții și o funcție poate apărea în mai multe departamente(ex. șeful de departament/șeful de secție), angajatul poate avea mai multe funcții și mai mulți angajați pot să aibă aceeași funcție.

Mai putem observa că aceste relații s-au format cu ajutorul cheilor primare și externe. O cheie este o modalitate de a identifica o înregistrare dintr-un tabel al bazei de date (cheia face referire la întreaga înregistrare/rând).

Fiecare tabel conține o coloană care este cheie primară, în aceste coloane se adaugă date unice și nu permite valori vide. O cheie primară este obligatorie. Fiecare tabel are exact o singură cheie primară. Deoarece nu există conceptul de rând “următor” sau “precedent”, nu contează ordinea rândurilor, nu se poate identifica un rând prin poziția sa; fără o cheie primară, unele date vor fi inaccesibile.

Pentru a putea realiza o relație între două tabele este nevoie ca tabelul “1” să aibă o coloană cheie primară iar tabelul “2” să conțină aceeași coloană(care este cheie externă), astfel se creează o legătură între acestea două. Valorile cheii externe sunt restricționate la valorile cheii părinte deja existente. Această restricție se numește integritate referențiară.

Valorile cheii externe se încadrează în același domeniu de valori ca și valorile cheii părinte. (domeniul reprezintă mulțimea tuturor valorilor premise pentru o coloană). În general, valorile cheii externe nu sunt unice în propriul său tabel.

Fig. 4.3 Diagrama bazei de date Resurse umane

Pentru exemplificare luăm tabelele din “Fig. 4.4 Tipuri de chei”, pentru tabelul Departament coloana NrDepartamentului este definită cheie primară în care apare numerotat fiecare departament (două departamente nu pot să aibă același număr), coloana NrDepartamentului apare și în tabelul Funcții unde devine cheie externă(foreign key) deoarece prin aceasta se face legătura cu tabelul Departament. Fiecărei funcții i se atribuie numărul departamentului din care face parte.

Datele din baza de date, sunt stocate în tabele diferite, prin urmare trebuie să existe un mod de a naviga între tabele, acest lucru se poate face cu ajutorul cheilor externe. O cheie externă este o coloană (sau un grup de coloane) dintr-un tabel, ale cărui valori sunt în relație cu valorile dintr-un alt tabel, stabilește o relație directă cu cheia primară (sau cu oricare cheie candidată) a tabelului părinte, astfel încât valorile cheii externe sunt restricționate la valorile cheii părinte deja existente.

Fig. 4.4 Tipuri de chei

Caracteristici ale tabelelor:

stochează datele bazei de date,

conține date despre un anumit tip de entitate. Un tip de entitate este o clasă de obiecte, evenimente sau concepte cu proprietăți comune, care aparțin lumii reale și care pot fi distinse de alte clase – de exemplu Funcții, Salarii, Angajați, Departament, are un nume unic în cadrul unei baze de date.

fiecare coloană are un domeniu ce restricționează setul de valori premise în coloana respectivă. Un domeniu este un grup de restricții: restricții asupra tipului de date, lungimii și unicității valorilor permise și asupra posibilității de a conține null-uri.

Am folosit ca și tipuri de date: decimal, nvarchar, date și integer(int – integer, este folosit pentru valori numerice între -2.147.483.648 și 2.147.483.647), date(date – este folosit pentru dată calendaristică), nvarchar(caractere de lungime variabila, câmpurile varchar pot conține maxim 255 caractere, cele de tip nvarchar pot atinge 64KB caractere în lungime. Avanjatul acestui tip (nvarchar) de date rezidă în faptul că utilizează doar spațiul necesar pentru stocarea datelor. Un câmp null nu va ocupa spațiu deloc), decimal(numere zecimale, un număr zecimal este un număr întreg urmat de un număr fix de zecimale).

Fiecare coloană are un nume care o identifică în mod unic în cadrul unui tabel (se poate reutiliza același nume de coloană în alte tabele).

Într-un tabel nu pot exista două rânduri identice, fiecare rând este identificat în mod unic prin cheia sa;

Aplicație informatică pentru calculul salariului și a zilelor de concediu de odihnă

5.1 Realizarea aplicației informatice

Pentru studiu de caz am ales crearea unei aplicații Windows în mediul de dezvoltare Microsoft Visual Studio 2010 cu ajutorul limbajului C#. Aplicația servește pentru calcularea salariilor, a numărului de zile de odihnă și pentru stocarea cu ușurință a datelor: date ale angajaților, a copiilor acestora, funcțiile și departamentele care există în structura organizatorică a firmei. A fost creată pentru persoana însărcinată cu calculul salariilor și pentru departamentul resurse umane a firmei FLEXIBIL S.R.L. Aplicația informatică conține date care se folosesc la calcularea salariului și a zilelor de odihnă, precum și date generale de care are nevoie firma. Angajatul pentru care se calculează salariul net are înregistrat în baza de date salariul brut sau plata pe oră la care se adaugă numărul de ore lucrate în căsuța special destintată orelor de muncă. La momentul apăsării butonului “Calculeaza salar net” se afișează automat salariul net, taxele angajatului, taxele angajatorului cu salariul, salarul complet și suma totală care merge la stat în urma unui salar (CAS, CASS, șomaj, etc.). În cazul în care se dorește afișarea detaliată a tuturor taxelor, se optează pentru butonul “Fluturas Salar”.

Când se dorește calcularea zilelor de odihnă angajatul trebuie să aibă înregistrată în baza de date data angajării.

Cele mai folosite ferestre în crearea aplicației au fost: Server Explorer, Document Outline, Toolbox, Solution Explorer și Proprietes. În continuare sunt prezentate câteva dintre aceste ferestre: Fig. 5.1 Solution Explorer, Fig. 5.2 Document Outline, Fig. 5.4 Properties, Fig. 5.5 Toolbox.

Fig. 5.1 Solution Explorer Fig. 5.2 Document Outline

Pentru a îndeplinii obiectivele aplicației s-au creat mai multe forme windows, după cum se poate vedea în “Fig. 5.1 Solution Explorer”, unde se poate vedea și denumirea soluției de Salarii și a proiectului – Salarii.

Pentru adăugare de noi forme windows se face click dreapta pe proiectul Salarii > Add > New Item > Windows Form > Ok.

Fiecare formă are nume, titlu, diferite proprietății care se modifică din fereastra Proprietăți, și diverse elemente adăugate din fereastra Toolbox. Fiecare formă are elementele sale adăugate și afișate într-o anumită ordine, acestea se văd și se modifică din fereastra Document Outline.

În “Fig. 5.2 Document Outline” este Documentul Outline pentru forma Calculator Salarii. Putem observa că au fost adăugate butoane, checkbox-uri, textbox-uri și alte diverse elemente. Sunt aranjate în ordinea în care au fost adăugate sau în ordinea în care se doresc a fi afișate.

Pentru îndeplinirea obiectivelor aplicației avem nevoie de următoarele forme,

pentru calcularea salariului am creat forma “Form_CalculatorSalarii” care conține datele angajaților și textbox-uri în care vor apărea diferite sume care vor fi preluate din baza de date sau rezultatul calculelor: salar Brut (baza de date), salar net (calcul), totalul taxelor plătite de către angajat (calcul) și angajator (calcul).

în unele cazuri este nevoie de un fluturaș de salar în care sunt detaliate toate taxele percepute de stat, așa că am creat forma “Form_FluturasSalar”.

pentru calcularea zilelor de odihnă am creat forma “Form_ Nr.ZileConcediu”, unde, pe baza datei în care s-a făcut angajarea, se calculează numărul de zile de concediu de care dispune angajatul la momentul dorit.

pentru a putea face aceste calcule, salar sau zile de concediu, avem nevoie de datele angajaților, așa că am creat o nouă forma “Form_DetaliiAngajați” în care persoana însărcinată cu actualizarea sau introducerea datelor despre angajați să poată face acest lucru cu ușurință.

printre aceste date ale angajaților se află și rubrica “funcție” unde trebuie introdusă funcția care i se oferă. Pentru a nu fi necesar ca la fiecare angajare să se creeze noi funcții, am creat o formă “Form_FunctiisiDepartamente” în care se trec funcțiile și departamentele existente în firmă. În momentul angajării, trebuie doar să se decidă departamentul și funcția care i se atribuie noului angajat. Dacă pe parcursul timpului se dorește creare de noi departamente și funcții acest lucru se poate face în această fereastră.

am creat și forma “Form_CopiiiAngajatilor”, în care am trecut datele copiilor angajaților. Aceste date sunt necesare pentru unele evenimente organizate de către firmă.

o altă formă este Form_Autentificare. Această formă oferă accesul în aplicație printr-un cont de utilizator și parolă.

Pentru a putea accesa toate aceste forme într-o singura aplicație, am creat o formă numită “Form_Meniu” care conține o bară de meniu a cărei meniuri sunt destinate deschiderii acestor forme.

Solution Explorer conține și clasa Program.cs în care este selectată, printr-un cod, fereastra care să se deschisă în momentul accesării programului.

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form_Meniu());

}

Setează ca și formă de deschidere, forma Meniu.

În momentul accesării, prima fereastră care se deschide este forma Meniu, numită FLEXIBIL SRL, de unde accesăm și celelalte ferestre.

Avem și o legătura LINQ to SQL sub numele de ResurseUmane.dbml în care se adaugă tabelele, din baza de date Resurse umane, pe care le folosim în aplicație. În această fereastră vedem și relațiile dintre aceste tabele, relații care s-au stabilit în momentul creării bazei de date.

Fig. 5.3 ResurseUmane.dbml

În fișierul app.config., apare calea prin care s-a creat legătura cu baza de date Resurse umane.

<connectionStrings>

<add name="Salarii.Properties.Settings.Resurse_umaneConnectionString1"

connectionString="Data Source=Admin-PC;

Initial Catalog=&quot;Resurse umane&quot;;Integrated Security=True"

providerName="System.Data.SqlClient" />

</connectionStrings>

Proiectul “Salarii” s-a conectat la baza de date “Resurse umane” având ca dată sursă calculatorul pe care se află baza de date (Admin-PC). “Catalogul” urmărit fiind Resurse umane. Preluarea bazei de date, în Visual Studio, s-a făcut prin sursa de date Microsoft Server SQL (SqlClient).

În fișierul “Resources” se află diferite imagini care au fost folosite în detaliile de afișare ale formelor: la butoane, ca imagine de fundal.

Pentru modificarea proprietăților formelor: lungime, lățime, nume, titlu, font, etc. se apelează la fereastra Properties.

În partea de sus a ferestrei, scrie denumirea formei pentru care sunt proprietățile, iar jos ne descrie pe scurt proprietatea selectată.

Fig. 5.4 Properties, ne arată proprietățile formei Meniu (o parte dintre ele), se poate vedea culoarea de fundal aleasă, Control, precum și existența unei imagini de fundal și alte proprietăți.

Fig. 5.4 Properties Fig. 5.5 Toolbox

Pe lângă modificarea proprietăților o formă mai are adăugate diferite component care se găsesc în fereastra Toolbox, “Fig. 5.5 Toolbox”. Cele mai folosite elemente, în această aplicație, sunt: TextBox, Label, Button, SplitContainer, Status Strip, CheckBox

CheckBox-urile sunt utilizate în momentul în care există date care nu se folosesc la fiecare operație. Aceste căsuțe îți oferă șansa de a ascude acele date de care nu ai nevoie în acel moment.

Toate modificările formei, referitor la adăugare de noi instrumente din Toolbox sunt evidențiate în fereastra Document Outline, pentru fiecare formă în parte.

5.2. Implementarea și utilizarea aplicației

Crearea aplicației în Microsoft Visual Studio presupune parcurgerea mai multor pași. În primul rând se va deschide Microsoft Visual Studio, în cazul de fața fiind versiunea din 2010, dar nu este obligatoriu, sunt eficiente oricare dintre versiuni, diferențele fiind nesemnificative.

Fig. 5.6 Fereastra de start Visual Studio

Fig. 5.7 Tipul proiectului

După deschiderea programului Visual Studio, o să apară o fereastră precum cea din “ Fig. 5.6 Fereastra de start Visual Studio”.

Se va alege limbajul de programare care urmează a fi folosit și tipul proiectului, conform “Fig. 5.7 Tipul proiectului”. Eu personal am ales limbajul Visual C# cu proiect de tipul Windows Form Application (template Windows).

Înainte de apăsarea butonului OK, pentru creere, se denumește proiectul și soluția proiectului. În cazul nostru acestea două au același nume: Salarii.

După deschiderea programului a fost necesară adăugarea bazei de date, la proiectul creat, care presupune parcurgerea mai multor pași evidențiați în „Fig. 5.8 Adăugare bază de date”.

Primul pas se face din panoul Server Explorer de pe iconița selectată precum în „Fig. 5.8 Adăugare bază de date” sau prin, click dreapta pe Data Connections > Add Connection.

Pasul doi presupune alegerea sursei de date, adică sursa de unde provine baza de date, Microsoft SQL Server.

La pasul trei se alege numele serverului pe care este baza de date, în cazul nostru este pe laptopul meu numit ADMIN-PC.

Pasul patru presupune alegerea modului de autentificare în server, folosind autentificarea SQL Server sau autentificarea Windows. Eu sunt administratorul bazei de date, deci am ales autentificarea Windows.

La pasul cinci se alege baza de date care se dorește apelată în Visual.

Dacă toți pașii au fost completați corect, pasul șase, adică butonul OK, salvează cererea noastră. Baza de date va apărea la Data Connections.

Fig. 5.8 Adăugare bază de date

Chiar dacă baza de date este adăugată în Visual Studio nu o putem folosi până nu o legăm de proiectul nostru. Pentru aceasta avem nevoie de LINQ to SQL Classes. Pentru adăugare se face click dreapta pe proiect > Add > New Item > alegem LINQ to SQL Classes căruia îi dăm un nume > Add.

În fereastra Solution Explorer o să apară clasa creată sub denumirea noastră, ResurseUmane, cu extensia .dbml. Această clasă se deschide (dublu click), iar din fereastra Server Explorer, de la baza de date, se aleg tabelele cu care vom lucra și se trag în clasa deschisă. Se salvează.

În panoul Data Sources se adaugă tabelele din clasa LINQ to SQL, urmărind pașii din “Fig. 5.9 Objects” pentru a putea lucra cu acele tabele în formele care le vom crea. Se aleg date de tipul obiect.

Fig. 5.9 Objects

Următorul pas în realizarea aplicației este crearea formelor. Prima formă creată este forma principală numită “Form_Meniu” cu titlul FLEXIBIL SRL, conform figurei “Fig. 5.10 Forma Meniu”. Este o formă de tipul MdiContainer, este forma gazdă pentru celelalte forme. Conține o bară de meniu (menuStrip) de unde se deschid ferestrele existente.

La proprietățile barei de meniu, ca și MdiWindowsListItem este selectat meniul Ferestre. Are sarcina de-a afișa sub formă de listă, ferestrele deschise în acel moment.

Fig. 5.10 Forma Meniu

Cod sursă pentru meniul Calcul Salarii, codul este asemănător și pentru celelalte meniuri, diferă doar numele și fereastra apelată pentru deschidere:

private void calculSalariiToolStripMenuItem_Click(object sender, EventArgs e)

{

//1 foreach (Form child in this.MdiChildren)

{

if (child is Form_CalculatorSalarii)

{

child.Select();

return;

}

}

//2 Form_CalculatorSalarii n = new Form_CalculatorSalarii();

n.MdiParent = this;

n.Show();

//1 dacă forma CalculatorSalarii este deja deschisă în momentul accesări, aceasta nu se redeschide ci devine forma curentă.

//2 la executarea evenimentului click pe meniul Calcul Salarii, forma Calcuator Salarii se va deschide în forma părinte numită FLEXIBIL SRL.

În momentul rulării, fereastra va arăta ca și în figura “Fig. 5.11 FLEXIBIL SRL”, pe fundal este setat să apară sigla firmei.

Fig. 5.11 FLEXIBIL SRL

În partea dreaptă a ferestrei, este adăugat un element de tipul DateTimePicker care ne arată data într-o formă scurtă. Pentru a vedea calendarul pe o lună, sau alte zile calendaristice se apasă pe săgeata din dreapta

Următoarea formă creată este forma Calculator Salarii, precum figura “Fig. 5.12 Forma Calculator Salarii” aceasta ne oferă posibilitatea de-a calcula salariul net.

Fig. 5.12 Forma Calculator Salarii

Pentru început s-a setat numele ferestrei “Form_Calculator Salarii”, titlul ferestrei “Calculator Salarii”, mărimea maximă a acesteia (a fost setată în funcție de mărimea maximă a ferestrei gazdă, FLEXIBIL SR), s-au adăugat textbox-uri în care vor apărea rezultatele calculelor.

În partea din stânga sunt afișati toți angajații firmei (sub forma DataGridView-tabel) iar în partea din dreapta apar diferite valori specifice pentru fiecare angajat în parte afișate sub formă detaliată.

Fereastra conține două butoane: Calculează Salar Net și Fluturaș Salar.

Pentru crearea butoanelor se va introduce un nou element din fereastra Toolbox numit button, care se redimensionează după preferințe, dar cel mai important este adăugarea unui nume în câmpul Text din fereastra Proprietes. La evenimentul Click al acestor butoane se adaugă codul care face posibilă realizarea acțiunii dorite.

În figurile “Fig. 5.13 Salariul Brut” și “Fig. 5.14 Plata pe oră” vedem rezultatul evenimentului Click al butonului Calculează Salar Net. Avem și două checkbox-uri care o să conțină niște valori, dacă sunt activate, care influențează calculul salariului net.

În figura “Fig. 5.13 Salariul Brut” aceste checkbox-uri nu sunt activate, deci valorile lor nu influențează calculul salariilor, despre figura “Fig. 5.4 Plata pe oră”, nu putem spune același lucru deoarece are activate amândouă checkbox-uri și observăm că au valori introduse. Valoarea tichetelor de masă este introdusă manual, numărul persoanelor din întreținere este luat din baza de date iar deducerea personală este afișată în urma unor calcule.

Salariul net va fi calculat atât din Salariul Brut (Fig. 5.13 Salariul Brut) cât și din plata pe oră la care se adaugă orele lucrate (Fig. 5.14 Plata pe oră).

Fig. 5.13 Salariul Brut

Fig. 5.14 Plata pe oră

Codul sursă pentru calcularea salariului net:

private void button_CalculeazaSalarNet_Click(object sender, EventArgs e)

{

if (angajat != null && angajat.Salar.SalarBrut.HasValue)

{

//1 salarBrut = angajat.Salar.SalarBrut.Value ;

}

else

{

if (angajat != null && angajat.Salar.LeiOra.HasValue &&

angajat.Salar.OreLucrate.HasValue)

{

//2 salarBrut = angajat.Salar.LeiOra.Value *

angajat.Salar.OreLucrate.Value;

salarBrutTextBox.Text = salarBrut.ToString();

}

}

//1 Preia valoarea salariului brut, prin variabila salarBrut, din baza de date.

//2 Dacă angajatul este plătit pe oră atunci trebuie să aibă o valoare în căsuța Lei Oră, această valoare se ia din baza de date, și o valoare în căsuța Ore Lucrate, adăugată manual. Din aceste două valori se calculează salariul brut, valoare preluată de variabila salarBrut și afișată în căsuța Salar Brut .

Diverse coduri care au ajutat la calculul salariului net:

// dacă angajatului i se dau tichete, atunci variabila impozitPeTichet preia valoarea tichetelor (aceasta valoare se introduce manual)

if (angajat != null && TextBox_valoareTichet.Visible &&

angajat.Salar.ValoareTichet.HasValue)

{

impozitPeTichet = angajat.Salar.ValoareTichet.Value;

}

// pentru plata salariului net se cere achitarea unui impozit pe salar de 16% din suma rămasă în urma achitării taxelor

decimal impozitSalar = ((salarBrut+ impozitPeTichet) – contribCASSangajat –

contribCASangajat – contribSomajAngajat-deducerePersonala * 0.16M;

// calculul și afișarea salariului net. La afișare valoarea va avea două zecimale

salarNet =Math.Round(salarBrut – contribCASSangajat – contribCASangajat –

contribSomajAngajat – impozitSalar,2);

textBox_salarNet.Text = salarNet.ToString();

// calculăm suma taxelor angajatului cu salariul brut

taxeAngajat =Math.Round(contribCASangajat + contribCASSangajat +

contribSomajAngajat + impozitSalar,2);

textBox_taxeAngajat.Text = taxeAngajat.ToString();

// calculăm suma taxelor angajatorului pentru salariul brut al angajatului

taxeAngajator =Math.Round(contribCASangajator + contribCASSangajator +

contribSomajAngajator + contribFNUASS + contribFondRiscAccidente + contribFondCreanteSalariale,2);

textBox_taxeAngajator.Text = taxeAngajator.ToString();

// calculăm salariul complet care reprezintă costul total al angajatorului cu salariul

salarComplet =Math.Round(salarBrut + taxeAngajator,2);

textBox_salarComplet.Text = salarComplet.ToString();

//calculăm totalitatea taxelor achitate pentru salariul net al unui angajator

statulColecteaza =Math.Round(taxeAngajat + taxeAngajator,2);

textBox_statulColecteaza.Text = statulColecteaza.ToString();

Uneori este nevoie de o detaliere a modului de plată a salariilor, de aceea am creat figura “Fig. 5.15 Fluturaș Salar” unde sunt detaliate toate taxele și impozitele achitate pentru a rezulta un anumit salar net. La evenimentul Click al butonului Fluturaș Salar se deschide o fereastră precum figura “Fig. 5.15 Fluturaș Salar”.

Fig. 5.15 Fluturaș Salar

Pentru a atinge obiectivele aplicației, a fost necesară crearea unei alte forme, numită Nr.zileConcediu, unde pentru fiecare salariat în parte se calculează numărul de zile de concediu de care dispune în funcție de data angajării. Numărul maxim de zile de concediu de odihnă este de 22 de zile. Pentru a calcula numărul maxim de zile de concediu pe lună s-a folosit formula: (22 zile concediu/ 12 luni din an)*numărul de luni lucrate = zile de concediu de odihnă.

După crearea formei s-a ales numele și titlul ferestrei “Număr zile de concediu de odihnă”, mărimea maximă a acesteia (în funcție de mărimea maximă a ferestrei gazdă), s-au adăugat textbox-uri în care va apărea numele și prenumele angajatului, numărul de luni de când este angajat și numărul de zile de concediu. Am adăugat și un element numit DateTimePicker care afișează data angajării fiecărui salariat, toate acestea se pot vedea în figura “Fig. 5.16 Zile Concediu”. Fereastra conține un buton Calculează al cărui eveniment click calculează numărul de zile de concediu.

Fig. 5.16 Zile Concediu

Numărul de luni lucrate este calculat automat prin codul următor:

if (angajat != null)

{

int an = (DateTime.Now.Year – angajat.DataAngajare.Value.Year) * 12;

int lunaCurenta = DateTime.Now.Month –

– angajat.DataAngajare.Value.Month;

int totalLuni = an + lunaCurenta;

nrLuniLucrateTextBox.Text = totalLuni.ToString();

}

Variabila “an” calculează numărul de luni de când este angajat, ținând cont doar de anul curent și anul angajării, nu și de luna curentă, respectiv luna angajării. Anul curent – anul angajării * 12 luni.

Variabila „lunaCurenta” calculează numărul de luni lucrate ținând cont doar de luna curentă și luna angajării. Luna curentă – luna angajării.

Variabila “totalLuni” calculează numărul total de luni de când este angajat salariatul până în momentul prezent. Valoarea acestei variabile este afișată în căsuța Nr.luni lucrate.

Evenimentul Click al butonului “Calculează” duce la calculul și afișarea zilelor de concediu în căsuța Nr.zile concediu. Codul următor arată modul de calcul al acestor zile iar figura “Fig. 5.17 Zile de Concediu” ne arată rezultatul obținut pentru angajatul Pop Maria angajată din 12 martie 2015.

decimal numarMaximZile = 22; // zile maxime

decimal luniAn = 12; // luni/an

if (angajat.NumePrenume != null)

{

int an = (DateTime.Now.Year – angajat.DataAngajare.Value.Year) * 12;

int lunaCurenta = DateTime.Now.Month –

angajat.DataAngajare.Value.Month;

decimal numarZile = Math.Round((numarMaximZile/luniAn) *

* (an + lunaCurenta),0);

nrZileConcediuTextBox.Text = numarZile.ToString();

} }

Fig. 5.17 Zile de Concediu

Pentru a putea calcula salariul net și zilele de odihnă avem nevoie de datele angajaților. Pentru adăugare/ștergere/modificare date angajați am creat o nouă formă numită DetaliiAngajați, precum figura “Fig. 5.18 Date angajați".

Fig. 5.18 Date angajați

După crearea și denumirea formei, s-a adăugat un element split container care împarte fereastra în două. În partea stângă s-au adăugat angajații din tabelul Angajați sub formă DataGridView iar în partea din dreaptă s-au adăugat datele din tabelul Salarii în formă DataGridView. Pentru adăugarea unui angajat este nevoie să se completeze amândouă tabele cu datele specifice fiecărei coloane.

În momentul deschiderii ferestrei Detalii Angajați, care se accesează din submeniul Detalii angajați al meniului Detalii, apare o fereastră precum cea din figura “Fig. 5.19 Angajații firmei”.

Fig. 5.19 Angajații firmei

var angajat = context.Angajats;

var salar = context.Salars;

angajatBindingSource.DataSource = angajat;

salarBindingSource.DataSource = salar;

Variabila angajat preia datele din tabelul Angajat și le trimite la angajatBindingSource pentru afișare. Același lucru face și variabila salar cu datele din tabelul Salar.

Printre datele angajaților se află și funcția acordată. Pentru a nu fi necesară crearea unei funcții la fiecare angajare, am creat o nouă formă Funcții și Departamente în care sunt trecute toate departamentele cu funcțiile lor. În momentul dezvoltării firmei se pot adăuga noi departamente și funcții într-un mod foarte ușor. Nu este nevoie de a apela la ajutorul administratorului de baze.

Această formă conține 3 tabele, conform figurei “Fig. 5.20 Funcții și Departamente”. În tabelul din stânga apar departamentele firmei, tabelul din mijloc descrie funcțiile fiecărui departament, iar în cel din dreapta apar toate funcțiile care au fost introduse până în acel moment.

Fig. 5.20 Funcții și Departamente

Fig. 5.21 Funcțiile firmei

În momentul deschiderii ferestrei Funcții și Departamente, care se accesează din submeniul Funcții și Departamente al meniului Detalii, apare o fereastră ca și cea din figura “Fig. 5.21 Funcțiile firmei”.

Pentru unele evenimente avem nevoie de unele date ale copiiilor angajaților. Cele mai importante date sunt vârsta și sexul. La numărul mare de angajați se pierde foarte mult timp cu calcularea vârstei fiecărui copil, de aceea am creat o nouă formă, special destinată pentru aceste evenimente. Această fereastră se poate vedea în figura “Fig. 5.22 Copiii angajaților”.

Fig. 5.22 Copiii angajaților

Pentru început a fost denumită fereastra “Detalii copii”, mărimea maximă a acesteia (a fost setată în funcție de mărimea maximă a ferestrei gazdă), s-a adăugat: un buton, două elemente panel și trei elemente numite label care afișează niște denumiri: Filtru:sex, Nume prenume părinte și Vârsta copilului. În dreptul fiecărui label este introdus câte un textbox în care se vor afișa sau introduce anumite texte sau valori.

În tabelul din centrul ferestrei o să apară toți copiii angajaților. Pentru a cunoaște părintele fiecărui copil, jos, în căsuța Nume prenume părinte o să apară numele angajatului în momentul în care este selectat copilul. Un exemplu se poate vedea în figura “Fig. 5.23 Detalii copii”.

Evenimentul Click al butonului “Încărcare Date” duce la încărcarea și afișarea copiilor care îndeplinesc regulile filtrului, se folosește filtru pentru selectarea copiilor în funție de sexul lor.

Sursa de cod pentru evenimentul Click al butonului Incarcare Date:

private void button_IncarcareDate_Click(object sender, EventArgs e)

{

var sexCopii = from c in context.CopiiiAngajauluis

orderby c.NumePrenume, c.DataNasterii

where c.Sex.StartsWith(textBox_Filtrare.Text)

select c;

copiiiAngajauluiBindingSource.DataSource = sexCopii;

}

Variabila sexCopii preia datele din tabelul CopiiiAngajatului, le ordonează după nume-prenume și data nașterii și afișează doar pe cele care îndeplinesc cerința introdusă în căsuța de Filtrare. În figura “Fig. 5.24 Filtru” s-a folosit un filtru pentru afișarea copiilor de sex feminin.

Fig. 5.23 Detalii copii

Fig. 5.24 Filtru

Sursa de cod pentru calcularea și afișarea vârstei copilului:

if (copii != null && copii.DataNasterii.HasValue)

{

//1 int years = DateTime.Now.Year – copii.DataNasterii.Value.Year;

//2 if (copii.DataNasterii.Value.AddYears(years) > DateTime.Now) years–);

varstaTextBox.Text = years.ToString();

}

else

{

varstaTextBox.Text = "Completati data nasterii..";

}

//1 calculează numărul de ani, anul curent – anul nașterii

//2 calculează după data curentă(zi, lună ,an). Dacă data nașterii este mai mare decât data curentă se scade 1 an.

Sursa de cod pentru afișarea textului din panelul doi.

if (copii.NumePrenume != null)

{

//1 string numePrenumeAngajat = copii.Angajat.NumePrenume.ToUpper();

//2 int numaraCopii = copii.Angajat.CopiiiAngajauluis.Count();

labelInfo.Text = String.Format("Angajatul {0} are {1} copii",

numePrenumeAngajat, numaraCopii);

}

else

{

labelInfo.Text = "Completati IDAngajat..";

}

//1 afișează numele părintelui cu litere mari

//2 afișează pentru fiecare angajat câți copii are

În labelul “labelInfo” va apărea următorul mesaj: Angajatul “numele și prenumele angajatului preluat din variabila numePrenumeAngajat” are “apare numărul calculat în variabila numaraCopii” copii. Acest mesaj se poate vedea în figurile “Fig. 5.23 Detalii copii” și “Fig. 5.24 Filtru”.

Fig. 5.25 Autentificare Fig. 5.26 Caractere pentru afișarea parolei

Ultima formă creată este forma de autentificare. Aceasta conține două textbox-uri, unul pentru contul de utilizator iar celălalt pentru parolă și două butoane: OK și Cancel, fereastra este evidențiață în figura “Fig. 5.25 Autentificare”. Butonului OK i s-a atribuit evenimentul Click, în urma căruia, dacă utilizatorul și parola sunt valide aplicația va rula, în caz contrar va apărea un mesaj de eroare, conform figurei “Fig. 5.27 Mesaj de eroare”.

Textbox-ului Parolă, i s-a adăugat o proprietate UseSystemPasswordChar, care reprezintă transformarea parolei în caractere speciale, ca și în figura “Fig. 5.26 Caractere pentru afișarea parolei”.

Accesul la utilizarea aplicației o au doar cei care au cont de utilizator și parolă. Această restricție s-a pus pentru a reduce cât mai mult eronarea datelor înregistrate.

Codul sursă pentru autentificarea în aplicație; Validare la nivel de machetă

public string utilizator;

public string parola;

private void button_OK_Click(object sender, EventArgs e)

{

this.DialogResult = DialogResult.OK;

utilizator = usernameTextBox.Text;

parola = passwordTextBox.Text;

this.Close();

}

Codul sursă pentru autentificarea în aplicație; Procedura de autentificare

// dacă s-a apăsat butonul OK se continuă verificarea contului de utilizator și a parolei

if (f.DialogResult == DialogResult.OK)

{

string userName = f.utilizator;

string password = f.parola;

// se verifica username si parola, dacă acestea sunt bune se autentifică, altfel apare mesajul de eroare

if (userName == "admin" && password == "admin" ||

userName == "conta" && password == "contab3#")

{

EsteAutentificat = true;

}

else

{

MessageBox.Show("Combinația de Utilizator si Parola nu este corectă.

Încercați din nou!");

}

}

// dacă nu s-a apăsat butonul OK (s-a apăsat Cancel) aplicația se închide

else

{

UtilizatorulAAbandonat = true;

this.Close();

}

}

Dacă utilizatorul sau parola au fost introduse greșit, o să apară un mesaj de eroare după care fereastra de autentificare se redeschide până utilizatorul și parola vor fi introduse corect. Fig. 5.27 Mesaj de eroare

Concluzii

În urma parcurgerii obiectivelor generale de la începutul acestei lucrări de licență, am obținut următoarele rezultate și concluzii.

Pentru a identifica nevoile unei înterprinderi este nevoie de o interacțiune personală cu conducerea și personalul implicat. Aceasta implică petrecerea timpului în cadrul acelei înterprinderi.

Eu am ales înterprinderea SC Flexibil SRL deoarece sunt angajată acolo și petrec 8,5 ore pe zi, timp în care pot să discut și să observ cum funcționează înterprinderea și ce probleme întâmpină privind calculul salariului net, a numărului de zile de concediu de odihnă și a modului de stocare a datelor personalului angajat.

Aceste discuții au dus la crearea unui scop al aplicației și a obiectivelor parțiale ale acesteia, descrise în Capitolul 4.

Pe baza obiectivelor parțiale, am efectuat un studiu de caz care cuprinde descrierea generală, principalele activități al companiei SC Flexibil SRL și un scurt istoric a unității începând de la activitatea sa până la personal. Totodată în acest studiu de caz am inclus și modul de organizare ierarhică a departamentelor care compun respectiva unitate.

Purtând mai multe discuții cu personalul implicat în dezbateri, am identificat soluția care duce la satifacerea cerințelor companiei. În cadrul discuțiilor întreprinse la fața locului, am ținut cont atât de calitatea soluției alese cât și de timpul redus disponibil pentru implementarea soluției alese.

În alegerea tehnologiei pentru crearea aplicației, am ținut cont de cunoștințele mele în domeniul dezvoltării de aplicații de introducere și prelucrarea de date, cunoștințe dezvoltate în urma cursurilor parcurse la facultate.

Pentru a implementa soluția propusă, am folosit mediul de dezvoltare Microsoft Visual Studio 2010, Microsoft SQL Server 2008 R2(pentru baza de date) și limbajul C#.

Rezultatul final al muncii mele a constat în dezvoltarea unei aplicații, care comunică cu o bază de date, care satisface cerințele clientului.

Aplicația conține mai multe forme care ajută contabilul de la FLEXIBIL SRL să calculeze salariul net și zilele de odihnă într-un timp cât mai scurt și corect, are posibilitatea de-a stoca/modifica datele angajaților, inclusiv a copiilor acestora, într-un mod mai ușor și sigur . Aplicația conține și o fereastră în care sunt stocate departamentele cu funcțiile aferente, existente în firmă. Pentru a avea acces la utilizarea aplicației este nevoie de un cont de utilizator și de o parolă.

Aplicația informatică realizată îndeplinește obiectivele generale propuse și fucționează cu success pe orice calculator pe care este instalat Microsoft Visual Studio 2010.

Aplicația informatică este simplă, aceasta presupune o activitate mai redusă din partea persoanei căreia ii este destinată aplicația.

Consider că aplicația informatică pentru calculul salariului net și a numărului de zile de odihnă prezintă aplicabilitatea în orice organizatie.

Listă bibliografică

Dewson, R., Beginning SQL Server for Developers, Apress, 2014

Ross Mistry, Stacia Misner, Introducing Microsoft SQL Server 2012, Microsoft Press, 2012.

Nagel, C., Evjen, B., Glynn, J., Watson, K., Skinner, M., Professional C# 4 and .NET 4, Wiley Publishing, 2010

Randolph, N., Gardner, D., Minutillo, M., Anderson, C., Professional Visual Studio 2010, Wiley Publishing, 2010

Toader, C., Administrarea bazelor de date SQL Server, suport de curs (electronic), CUNBM – Centrul Universitar Nord din Baia Mare, Facultatea de Științe, 2013-2014.

Toader, C., Programarea aplicațiilor Windows, suport de curs (electronic), CUNBM – Centrul Universitar Nord din Baia Mare, Facultatea de Științe, 2014-2015.

D. Niță, Economie politică, Ed. Economică, București, 1997

Conf.univ.dr.Carmen NASTASE, Lector univ.dr.Mihai POPESCU – Microeconomie, Universitatea “Ștefan Cel Mare” Suceava, Facultatea de Științe Economice și Administrație Publică, 2008-2009

Năstăsescu R. Liviu, Lucrare de dizertație, Arad 2011

http://www.uav.ro/files/finalizare/Disertatie_NastasescuL.pdf

Similar Posts