SPECIALIZAREA TEHNICA DE CALCUL
CUPRINSUL LUCRARII
1. INRODUCERE 2
1.1. LOCUL EXPLOATARII APLICATIEI 2 t1b13bh
1.2. NOTIUNI DE BAZA 2
1.3. NECESITATEA ELABORARII APLICATIEI 4
1.4. SPECIFICAREA CERINTELOR 5
2. MEMORIU TEHNIC 6
2.1. APLICATIE CENTRATA PE BAZE DE DATE 6
2.2. ABORDAREA METODICA A ACTIUNII DE PROIECTARE
A APLICATIEI 8
ANALIZA 8
PPROIECTARE 15
Diagrama Entitate-Relatie 15
Diagrama Functionala 17
Tipul arhitecturii pentru aplicatia creata 23
IMPLEMENTARE 25
3. MEMORIU JUSTIFICATIV 26
3.1. SCHEMA BAZEI DE DATE 26
3.2. CONTRIBUTII PERSONALE 28
4. GHID DE INSTALARE SI UTILIZARE 32
4.1 INSTALARE 33
4.2 UTILIZARE 33
CONCLUZII 38
BIBLIOGRAFIE 39
ANEXE 40
1. INTRODUCERE
In prima parte a lucrarii voi prezenta locul exploatarii aplicatiei,
voi expune notiunile elementare pe care le-am imprumutat din domeniul
juridic si pe care le-am transpus in aplicatia practica sub forma elementelor
de proiectare.
Deoarece gandirea logica a proiectului se bazeaza pe fundamentele acestea
teoretie am considerat ca este important sa le atasez mai jos, dar, pentru ca,
scopul nostru nu este acela a expune notiunile teoretice legate de domeniul
juridic, le voi prezenta foarte pe scurt.
De asemenea, voi mentiona si problemele din practica care au dus la necesitatea
elaborarii aplicatiei pe care am conceput-o.
1.1. LOCUL EXPLOATARII APLICATIEI
Aplicatia este conceputa si destinata unui Cabinet Grupat de Avocatura -;
„Dragan si Apan”, din Cluj-Napoca, str. Dorobantilor, nr. 78, bl.
Y1, sc.III, ap. 46.
1.2. NOTIUNI DE BAZA
Prin notiunea de adresa intelegem termenul administrativ care localizeaza
un imobil prin specificarea localitatii, a strazii, al numarului -; in
cazul caselor - si in plus al blocului, a scarii, al apartamentului -
in cazul apartamentelor.
Prin notiunea de Cabinet Grupat de Avocatura (sau Cabinete Individuale de Avocatura
Grupate) se intelege un grup de Cabinete Individuale de Avocatura care isi
desfasoara activitatea la aceeasi adresa si care isi impart cheltuielile
comune in mod egal. Avocatii ca si titulari ai cabinetelor, care fiinteaza
la aceeasi adresa, sunt obligati, prin lege, sa se grupeze intr-un astfel
de cabinet grupat pentru a elimina eventualele neantelegeri care ar putea
surveni.
Notiunea de Cabinet Grupat de Avocatura este mai mult teoretica rezultata din
vointa legiuitorului, aceasta nu desemneaza o persoana juridica.
Prin urmare, un Cabinet Grupat de Avocatura cuprinde unul sau mai multe Cabinete
Individuale de Avocatura.
Prin notiunea de angajat se intelege persoana care este angajata la un
cabinet cu contract de munca. Un angajat poate sa lucreze la mai multe cabinete,
caz in care incheie cu fiecare cabinet un contract de munca. De
exemplu, in cazul cabinetului pentru care am conceput aplicatia, secretara
are contract de muna cu toate cabinetele de avocati din cadrul cabinetului grupat.
Prin notiunea de contract de munca intelegem actul legal care face dovada
ca o persoana lucreaza pentru un cabinet de avocatura.
Prin client intelegem o persoana (fizca sau juridica) care apeleaza la
serviciile cabinetului, in scopul de a fi reprezentat in fata organelor
legale (de exemplu in fata instantelor judiciare, a organelor administrative,
etc). Clientul are obligatia sa achite catre cabinet onorariu avocatial. Clientul
poate avea unul din urmatoarele roluri in cadrul contractului pe care
il incheie cu cabinetul: client propriu-zis, reprezentant, grad
de rudenie sau sot.
Notiunea de contract de asistenta juridica desemneaza contractul pe care avocatul
-;ca titular al cabinetului - il incheie cu clientul in
baza unui obiect .
Contracul are atasat o data (data la care s-a incheiat contractul) si
un numar (numarul care urmeaza de la ultimul contract incheiat). De asemenea,
mai contine clauze contractuale: clauze generice sau obisnuite (care se includ
in fiecare contract de asistenta juridica si nu pot lipsi) si clauze speciale
sau alte clauze (acestea se specifica pentru fiecare contract si pot lipsi).
Totodata, in acest contract se mentoneaza si numarul de exemplare originale
ale contractului, obiectul contractului, valoarea onorariului si, pe parcurs,
se adauga ratele de achitare a onorariului impreuna cu numarul si data
actului doveditor al incasarii -; chitanta.
Notiunea de onorar avocatial sau, mai simplu, onorar reprezinta suma de bani
datorata de client cabinetului, ca urmare a faptului ca avocatul, ca titular
al cabinetului, il reprezinta pe acesta (pe client) in fata organelor
legale.
Onorariul se poate achita intergral la inceput, cand se incheie
contractul de asistenta juridica sau pe parcurs in rate (transe), functie
de posibilitatile clientului.
Prin notiunea de rata se intelege o incasare pe care o face cabinetul
de la un client pe baza unui contract de asistenta juridica existent; actul
se identifica prin numar si data (exemplu: data si numarul chitantei). De asemenea,
se mentioneaza suma care s-a incasat.
Prin notiunea de client curent intelegem clientul care mai are de achitat
rate din onorar si pentru care scopul contractului de asistenta juridica (obiectul
prevazut in contractul de asistenta juridica) nu a fost inca atins,
adica actiunea de reprezentare nu s-a incheiat.
Iar prin notiunea de client restantier intelegem clientul care mai are
de achitat rate din onorar, dar, pentru care scopul contractului de asistenta
juridica a fost atins, adica actiunea de reprezentare s-a incheiat.
1.3. NECESITATEA ELABORARII APLICATIEI
Pentru a explica necesitatea elaborarii unei aplicatii la cabinetul grupat
de avocatura, voi aduce ca argument principal necesitatea inlocuirii muncii
manuale -; intr-o pondere cat mai mare - cu munca automatizata
si utilizarea tehnicilor moderne, care aduc o imbunatatire considerabila
in eficienta cautarilor de date. Insa, eficienta aceasta si necesitatea
existentei unei aplicatii trebuie calculata in termenii contextului prezent
si viitor.
Doresc sa mentionez - intr-o scurta paranteza -; ca, in toate
institutiile juridice din Cluj: Judecatorie, Tribunal, Curte de Apel ( chiar
din intreaga tara) munca este in majoritate manuala. Calculatoarele
sunt utilizate rareori, si in acest caz doar pentru redactare. Chiar si
redactarea se face cu masina de scris. Explicatia ar consta in necesitatea
prezentei unei „dovezi scrise”, dovada care poate ulterior sa fie
verificata.
La fel este si in cadrul cabinetului, dovada trebuie sa se prezinte in
forma clasica (acte, registre de evidenta, etc), acestea nu pot fi eliminate.
Automatizarea unor actiuni duce, in acest caz, la inregistrarea
unui fapt in doua locuri: in registrul clasic si, eventual, in
baza de date, daca se foloseste o abordare de tip baza de date pentru aplicatie.
Pe de o parte inregistrarea in doua locuri a datelor necesita timp,
pe de alta parte timpul acesta se recupereaza la cautarea informatiilor necesare:
nu e acelasi lucru sa dai o comanda care sa caute in baza de date si sa
gaseasca informatiile de care ai nevoie (operatie care dureaza cateva
secunde) sau sa cauti manual in registre, in chitantiere, etc.
1.4. SPECIFICAREA CERINTELOR
Mi s-a cerut sa realizez o aplicatie care sa se poata rula in conditiile
de dotare existente la cabinet. Drept pentru care am fost nevoita sa aleg tipul
de aplicatie desktop. Scopul aplicatiei s-a dorit a fi o evidenta a cabinetelor
cu privire la angajati, la clienti si la incasarile corespunzatoare ratelor
de onorar.
Pentru avocat cel mai important lucru este sa existe o situatie cu privire la
clientii restantieri. Reamintesc ca plata prevazuta in contractul de asistenta
juridica pentru reprezentare - plata onorariului -; se poate efectua in
mai multe transe (rate); numarul lor nu se specifica la incheierea contractului
si nu exista un termen limita pentru plata, insa, clientul trebuie sa
isi achite aceasta obligatie pana la finele reprezentarii, prin
aceasta intelegand terminarea procesului, finalizarea actiunilor
pentru care avocatul a fost solicitat, etc; acest termen nu poate fi anticipat.
Din aceste motive, pentru diferentierea clientilor curenti de cei restantieri
am convenit un artificiu de implementare: avocatul in momentul incheierii
unui contract de asistenta juridica sa stabileasca un termen limita pentru achitarea
integrala a onorariului; termen care ulterior poate sa fie modificat.
De asemenea, este foarte important pentru cabinet sa aiba evidenta persoanelor
angajate, aceasta deoarece exista obligatii lunare de plata catre institutii
specializate.
2. MEMORIU TEHNIC
Aplicatia este abordata ca aplicatie baze de date.
2.1. APLICATIE CENTRATA PE BAZE DE DATE
Notiunea de baza de date este strans legata de notiunea de date, care
refera „fapte culese din lumea reala” a1i. Baza de date se refera
la un volum mare de date, care sunt stocate pe suport fizic; ea reprezinta,
in cazul sistemului computerizat, echivalentul arhivei din viata reala.
Mai poate fi inteleasa ca o colectie de fisiere de date intr-un
sistem de calcul a2i.
Pentru o baza de date cel mai important lucru este manipularea datelor continute
in acea baza de date. Aceasta „manipulare” refera operatiile
care se pot efectua asupra datelor: operatii de adaugare a unor date noi, operatii
de regasire, de modificare, de stergere a datelor existente a2i.
In continuare voi rezuma argumentele care au stat la temelia alegerii
pe care am facut-o -; alegerea unei aplicatii centrata pe baze de date.
Aveam nevoie ca aplicatia sa permita stocarea unui volum mare de date, la care
sa existe acces tot timpul. Se stie ca in cazul bazelor de date, accentul
este pus pe operatiile de memorare si regasire, efectuate asupra unor volume
mari de date si mai putin asupra operatiilor de prelucrare a datelor care este
domeniul altor categorii de aplicare a informaticii. Acest lucru a constituit
pentru mine argumentul principal care m-a determinat sa aleg acest tip de aplicatie.
Securitatea datelor este o problema actuala. ea este tratata in cazul
unora din SGBD-uri (sisteme de gestiune de baze de date), care ofera accesul
la date prin intermediul numelui de utilizator si al parolei, sub forma unor
restrictii asupra operatiilor care se doresc a fi executate si asupra tabelelor
care privesc aceste operatii (exemple MSSQL Server 2000, ORACLE9i, DB2).
Visual Fox nu are asemenea elemente de securitate. In cazul acestui SGBD,
problema securitatii este asigurata de sistemul de operare sau - in cazul
cabinetelor grupate pentru care s-a conceput aplicatia de fata - de parolarea
BIOS-ului.
In lucrare voi specifica pe scurt tehnicile moderne de proiectare care
sa-mi permita o dezvoltare ulterioara a aplicatiei. O prioritate in lista
dezvoltarilor ulterioare o constituie dotarea aplicatiei cu tehnici de securitate
a datelor chiar daca aceasta presupune migrarea spre o alta arhitectura.
Doresc ca baza de date pe care o utilizez in aplicatia mea, cabgrav, sa
memoreze toate datele cu privire la contractele de asistenta juridica si la
contractele de munca din cadrul cabinetului grupat. Evident ca pentru a realiza
acest lucru este nevoie sa se pastreze si date care nu au fost enumerate mai
sus, dar care fac parte din elementele componente ale contractului de asistenta
juridica si ale contractului de munca. De exemplu datele cu privire la avocat,
la client, la angajat, la incasarile care s-au facut pentru contractul
de asistenta juridica.
2.2 ABORDAREA METODICA A ACTIUNII DE PROIECTARE A APLICATIEI
Pentru a ajunge la un rezultat satisfacator am parcurs etapele de analiza
si proiectare, care sunt independente de o implementare anume, urmate de etapele
de dezvoltare, testare si documentare.
ANALIZA
Pentru a ajunge la baza de date existenta, am utilizat o „schita”,
pe care am creat-o in baza specificatiilor de definitie. Voi reda mai
jos lista cu entitatile si cu atributele care constituie fundamentul descrierii
schemei bazei de date.
Tab. 1 LISTA CU ENTITATI SI ATRIBUTE PENTRU CONSTRUIREA DIAGRAMEI ER
TERMEN
CALITATE
Entitate (E) / Atribut (A) avocat E nume avocat A prenume avocat A codul numeric personal al avocatului A telefonul mobil al avocatului A data intrarii in functie A
acontinuarei
CALITATE
Entitate (E) / Atribut (A)
TERMEN data iesirii din grup A numarul actului de intrare in functie A angajat E nume angajat A prenune angajat A codul numeric personal al angajatului A telefonul mobil al angajatului A are persoane in intretinere? A client E nume client A prenune client A codul numeric personal al clientului A telefonul mobil al clientului A calitate A adresa E cod adresa A localitate A strada A numar A bloc A scara A apartament A telefon fix A contract asistenta juridica E numar casj A data incheierii casj A obiect contract A onorar avocatial A clauza speciala sau alta clauza A numar exemplare A data limita A contract de munca E numar cm A data incheierii cm A rata de plata pentru onorar E numar act A data act A suma A
Din tabelul 1 se observa ca avem o redundanta in privinta numelui, prenumelui,
codului numeric personal si al telefonului mobil si ca entitatile: avocat, angajat
si client sunt specializari pentru persoana. Ca atare am convenit introducerea
unei entitati noi care sa contina atributele redundante, numita PERSOANA si
care sa constituie supertip pentru entitatile: avocat, angajat si client.
In baza de date vom avea entitatile corespunzatoare din tabelul 2
Tab. 2 ENTITATILE CARE INTRA IN SCHEMA BAZEI DE DATE
DENUMIRE ENTITATE TIPUL ENTITATII ENTITATI CU CARE ARE LEGATURA persoana supertip pentru avocat, angajat si client - avocat
- angajat
- client
- adresa avocat subtip de persoana - contract asistenta juridica
- contract munca
- persoana angajat subtip de persoana - contract munca
-. persoana client subtip de persoana - contract asistenta juridica
- persoana adresa entitate de baza - persoana contract asistenta juridica entitate de legatura - avocat
- client
- rata contract de munca entitate de legatura - avocat
- client rata entitate de baza - contract asistenta juridica
Pentru schema BD am nevoie ca sa fac analiza fiecarui atribut pentru a stabili
tipul si lungimea maxima pe care o admite. Pentru aceasta am intocmit
un tabel cu atribute (vezi tabelul 3).
Tab. 3 ATRIBUTELE CARE INTRA IN SCHEMA BAZEI DE DATE
DENUMIRE ATRIBUT TIPUL ATRIBUTULUI LUNGIME MAXIMA nume sir de caractere 30 prenume sir de caractere 35 cod numeric personal sir de caractere 13 telefon mobil sir de caractere 10 data intrarii in functie data calendaristica data iesirii din grup data calendaristica numarul actului de intrare in functie numeric 7,0 are persoane in intretinere? logic calitate sir de caractere 15 cod adresa sir de caractere 5 localitate sir de caractere 20 strada sir de caractere 25 numar numeric 4,0 bloc sir de caractere 4 scara numeric 2,0 apartament numeric 3,0 telefon fix sir de caractere 10 numar casj numeric 3,0 data incheierii casj data calendaristica obiect contract sir de caractere 40 onorar avocatial numeric 8,0 clauza speciala sau alta clauza sir de caractere variabil numar exemplare numeric 1,0 data limita data calendaristica numar cm numeric 7,0 data incheierii cm data calendaristica numaul actului de incasare onorar numeric 10,0 data actului de incasare onorar data calendaristica suma incasata numeric 8,0
Pentru a construi diagrama Entitate-Relatie care conduce la crearea bazei de
date, trebuie sa stabilesc ce relatie exista intre entitati.
Intre entitati pot exista trei tipuri de relatii: relatie 1:1 (unei instante
din stanga relatiei ii corespunde o instanta din dreapta relatiei),
relatie 1:N (unei instante din stanga relatiei ii corespunde una
sau mai multe instante din dreapta relatiei) si relatie M:N (unei instante din
stanga relatiei ii corespunde o instanta din dreapta relatiei si
unui instante din dreapta relatiei ii corespunde una sau mai multe instante
din stanga relatiei).
Pentru a remarca mai usor ce tip de legatura exista intre entitati am
folosit tehnica grilajului deoarece imi permite o buna vizualizare a relatiilor
dintre entitati prin modul de aranjare al acestora - sub forma unui „grilaj”.
Sunt prezentate legaturile directe dintre entitati, cele indirecte se deduc.
Tab. 4 TIPUL LEGATURILOR DINTRE ENTITATI FOLOSIND TEHNICA GRILAJULUI
Nr. crt. Entitate
Entitate persoana
1 persoana ________________________________________ avocat
2 avocat 1 : 1 ________________________________________ angajat
3 angajat 1 : 1 ________________________________________ ________________________________________
client
4 client 1 : 1 ________________________________________ ________________________________________
________________________________________ adresa
5 adresa 1 : N ________________________________________ ________________________________________
________________________________________ ________________________________________
casj
7 casj ________________________________________ N : 1 ________________________________________
N : 1 ________________________________________ ________________________________________
cm
8 cm ________________________________________ N : 1 N : 1 ________________________________________
________________________________________ ________________________________________
________________________________________ rata
9 rata ________________________________________ ________________________________________
________________________________________ ________________________________________
________________________________________ N : 1 ________________________________________
________________________________________
Voi da doua exemple care sa arate cum se citeste tabelul de mai sus.
Fig. 1 EXEMPU DE CITIRE A RELATIILOR INTRE ENTITATILE DIN GRILAJ
avocatangajat M : N
Un avocat are unul sau mai multi angajati si un angajat poate lucra pentru unul
sau mai multi avocati.
avocat adresa 1 : N
Un avocat are adomiciliul lai o adresa si o adresa este pentru unul sau mai
multi avocati.
Toate aceste atribute si entitati iau viata in prezenta unor evenimente
si a unor functii; functii care sunt apelate de evenimentele respective. Doresc
sa arat, referitor la prezenta aplicatie, lista cu evenimentele care ar putea
surveni si functiile corespunzatoare acestor evenimente.
Tab. 5 LISTA CU EVENIMENTE SI FUNCTII
EVENIMENT FUNCTIA
ATASATA
EVENIMENTULUI EXPLICATIE
(Ce presupune functia atasata evenimentului ?)
1 Angajarea unei persoane de catre cabinet . Intocmirea contractului de
munca. - culegerea datelor angajatului (date de identificare, adresa, telefon,
daca are sau nu peroane in intretinere) si inregistrarea acestor
date daca angajatul este nou pentru cabinetul grupat;
- determinarea angajatului daca acesta este un angajat cunoscut;
- determinarea cabinetului (al avocatului ca si titular al cabinetului) care
face angajarea;
- stabilirea datelor de identificare ale contractului (numar si data);
- inregistrarea contractului;
2 Clientul apeleaza la serviciul cabinetului. Intocmirea contractului
de asistenta juridica. - culegerea datelor clientului (date de identificare,
adresa, telefon), stabilirea calitatii acestuia si inregistrarea acestor
date daca clientul este nou pentru cabinetul grupat;
- determinarea clientului daca acesta este un client cunoscut;
- determinarea cabinetului (a avocatului ca si titular al cabinetului) care
incheie contractul de asistenta juridica;
- stabilirea datelor de identificare a contractului (numar si data)
- stabilirea obiectului contractului, al onorariului, a clauzelor speciale,
a datei limia pentru achitarea onoriului si al numarului de exemplare originale;
- inregistrarea contractului;
3 Clientul achita o parte din onorar sau onorariul integral. Incasarea
unei rate de onorar. - determinarea contractului pentru care se achita rata
de onorar;
- stabilirea sumei;
- stabilirea datelor de identificare a actului doveditor al platii (numar si
data ); de exemplu chitanta;
- inregistrarea ratei;
4 Un avocat nou doreste sa intre in grupul de cabinete grupate. Inregistrarea
unui avocat nou. - culegerea datelor avocatului (date de identificare, adresa,
telefon, data intrarii in functia de avocat, numarul deciziei de intrare
in functia de avocat);
- inregistrarea acestor date;
aCONTINUAREi FUNCTIA
ATASATA
EVENIMENTULUI EXPLICATIE
EVENIMENT
5 Avocatul solicita lista cu clientii restantieri. Intocmirea listei clientilor
restantieri. - pentru fiecare contract de asistenta juridica al cabinetului
care doreste lista clientilor restantieri se efectueaza urmatoarele operatii:
-(a) verificarea depasirii datei limita de achitare a onorariului;
-(b) in caz afirmativ se calculeaza suma ratelor achitate si se scade
din onorariu obtinand astfel restul de plata;
-(c) atasarea datelor calculate la (b) impreuna cu datele clientului si
ale contractului intr-o lista;
6 Gresirea datelor de identificare ale unei persoane (codul numeric personal),
ale contractului sau ale ratei (numarul si data). Stergerea / eliminarea datelor
gresite. - identificarea persoanei (avocat, angajat sau client) prin codul sau
numeric personal sau a contractului sau a ratei de achitare a onorariului prin
elementele sale de identificare: numar si data;
- eliminarea datelor gresite;
- reanscrierea datelor corectate;
7 Gresirea altor date (nu a celor de identificare) ale unei persoane, ale contractului
sau ale ratei. Modificarea datelor gresite. - identificarea persoanei (avocat,
angajat sau client) prin codul sau numeric personal sau a contractului sau a
ratei de achitare a onorariului prin elementele sale de identificare: numar
si data;
- corectarea datelor gresite si inregistrarea modificarilor facute;
PROIECTARE
In aceasta etapa voi tine cont de cea ce am realizat pana acum
si anume: de lista cu entitati si atribute pentru a crea diagrama Entitate-Relatie,
de lista cu evenimente si functii pentru a realiza diagrama de funtii cu evenimentele
corespunzatoare.
Diagrama Entitate-Relatie este o forma intermediara intre „schita”
de entitati si atribute, descrisa anterior si schema bazei de date. Aceasta
diagrama este independenta de SGBD-ul ales.
Anticipez ca in implementare voi folosi ca SGBD produsul Visual Fox.
Exista uneltele CASE (Computer Aided Systems Engeneering Tools ) care detin
suport corespunzator pentru crearea unui model grafic. Din acest model se poate
generea schema bazei de date in SGBD-ul dorit (SGBD-ul se selecteaza dintr-o
lista afisata), printr-un click al mouse-ul.
Procesul de creare a schemei bazei de date dintr-un astfel de model se numeste
ENGENEERING, termen incetatenit sub aceasta forma si in limbajul
romanesc de specialitate.
Unealta CASE, pentru obtinerea schemei bazei de date, cu care am lucrat (Embarcadero)
a avut ca si SGBD-uri tinta o lista de produse precum MSSQL Server, Oracle,
Acces, etc. Schema in Visual Fox am creat-o cu Database Designer in
VisualFoxPro versiunea 6.0.
Schema bazei de date se obtine foarte usor odata ce avem la dispozitie diagrama
Entitate-Relatie. Aceasta diagrama este independenta de metoda de dezvoltare
aleasa, are rolul de a repartiza atributele la entitatile corespunzatoare si
de a stabili legaturile care exista intre entitati asa cum se observa
in figura 2.
Pentru a concepe structura bazei de date trebuie sa intelegem diagrama;
pentru a o intelege si pentru a ne folosi de ea ulterior este foarte important
sa stim cum se citeste diagrama. Mai jos voi reda citirea diagramei intr-un
tabel.
Tab. 6 CITIREA DIAGRAMEI ENTITATE - RELATIE
O ADRESA poate fi pentru una sau mai multe PERSOANE. si O PERSOANA trebuie
sa aiba o ADRESA si numai una.
Un ANGAJAT care este subtip de PERSOANA trebuie sa lucreze cu un CONTRACT DE
MUNCA sau cu mai multe CONTRACTE DE MUNCA. si Un CONTRACT DE MUNCA trebuie sa
fie pentru un ANGAJAT si numai unul.
Un AVOCAT, care este subtip de PERSOANA, poate incheia unul sau mai multe
CONTRACTE DE MUNCA. si Un CONTRACT DE MUNCA trebuie sa aiba ca subiect ade drepti
un AVOCAT si numai unul.
Un AVOCAT, care este subtip de PERSOANA, poate intocmi unul sau mai multe
CONTRACTE DE ASISTENTA JURIDICA. si Un CONTRACT DE ASISTENTA JURIDICA trebuie
sa aiba ca subiect ade drepti un AVOCAT si numai unul.
Un CLIENT, care este subtip de PERSOANA, trebuie sa fie parte in unul
sau mai multe CONTRACTE DE ASISTENTA JURIDICA. si Un CONTRACT DE ASISTENTA JURIDICA
trebuie sa fie pentru un CLIENT si numai unul.
Un CONTRACT DE ASISTENTA juridica poate sa aiba una sau mai multe RATE . si
O RATA este pentru un CONTRACT DE ASISTENTA JURIDICA si numai unul.
ANGAJATUL, AVOCATUL si CLIENTUL sunt PERSOANE. si O PERSOANA trebuie sa aiba
unul din urmatoarele roluri: ANGAJAT, AVOCAT sau CLIENT, unul si numai unul.
Sa incep numerotarea de la Diagrama ER !
In tabel am folosit cuvinte italice pentru exprimarea tipului de relatie
din diagrama: relatie optionala (redata in diagrama prin linie intrerupta)
si relatie obligatorie (redata in diagrama cu linie continua).Am folosit
cuvinte ingrosate pentru cuvintele din diagrama corespunzatoare legaturilor
dintre entitati. Cuvintele scrise cu litere mari reprezinta entitatile.
Se observa din diagrama ca avem o relatie de tip-subtip intre entitatile:
persoana (cu rol de supertip) si angajat, avocat, client (cu rol de subtip),
ceea ce inseamna ca o persoana poate sa joace un singur rol: de angajat,
de avocat sau de client.
Diagrama functionala (diagrama de functii) exprima modul in care se
comporta sistemul la aparitia unui eveniment. Pentru construirea diagramei de
functii am luat in calcul lista cu evenimente si funtii din tabelul 3.
In diagrama de functii evenimentele sunt redate cu sageti etichetate,
iar functiile sunt date prin dreptunghiuri cu colturi rotunjite, deasemenea
etichetate.
In figura 3 am reprezentat diagrama de functii.
Fig. 3 DIAGRAMA FUNCTIONALA
Tipul arhitecturii pentru aplicatia creata
Pentru a argumenta tipul arhitecturii utilizate in aplicatie voi mentiona
tipurile arhitecturilor de aplicatie existente la ora actuala.
Exista trei tipuri de arhitecturi de aplicatie. Le voi prezenta pe scurt in
ordinea dezvoltarii.
Prima arhitectura numita desktop se distinge prin faptul ca atat baza
de date (BD) cat si aplicatia sunt pe acelasi sistem de calcul.
Fig. 4 PREZENTAREA ARHITECTURII DESKTOP
Sistem de calcul
APLICATIE
BAZA DE DATE
Voi folosi acest tip de arhitectura in aplicatia mea, luand in
considerare dotarea actuala de la cabinet. Voi amintit pentru dezvoltarile ulterioare
ale aplicatiei si urmatoarele doua tipuri de arhitacturi: client-server si multistrat.
In arhitectura client-server sunt implicate doua tipuri de sisteme de
calcul asa cum reiese din denumirea arhitecturii: unul client si altul server.
Pe sistemul client ruleaza „aplicatia client” care comunica cu baza
de date situata pe alt sistem de calcul -; server de baze de date (serverul
BD).
Fig. 5 PREZENTAREA ARHITECTURII CLIENT-SERVER
CLIENT SERVER
APLICATIE BAZA DE DATE
Al treielea tip de arhitectura -; arhitectura multistrat - se caracterizeaza
prin existenta, generic vorbind a trei sisteme de calul: clientul, serverul
de aplicatii si serverul de BD. In realitate pot exista o multime de sisteme
de calcul la fiecare strat.
Clientul are un browser de Internet, serverul de aplicatii este WEB server-ul
care contine definitiile claselor ce descriu regulile de business (adica lucrurile
care se schimba in timp) si exista, separat, serverul de BD. Aici se dovedeste
importanta programarii obiectuale prin proprietatile ei de incapsulare
a datelor (ascunderea detaliilor), mostenire (reutilizarea unei clase in
modelarea altei clase care este o specializare a celei dintai) si polimorfism
(proprietatea unei metode de a se adapta in functie de tipul obiectului
care o apeleaza).
Fig. 6 PREZENTAREA ARHITECTURII MULTISTRAT (INTERNET)
CLIENT -WEB SERVER SERVER DE APLICATII
SERVER BD
APLICATIE CARE RULEAZA
REGULILE DE BUSINESS
ALE APLICATIEI BAZA DE DATE
BROWSER INTERNET
Produsul care face o fidela modelare a acestei arhitecturi este Visual Modeler.
O sa-i fac o scurta prezentare deoarece m-am gandit sa-l folosesc ca unealta
in dezvoltarea ulterioara a aplicatiei mele.
Visual Modeler (vezi si Rational Rose), este o unealta de modelare pentru obiectele
grafice ; este un produs deosebit de util daca se lucreaza in programare
obiectuala . Voi enumera patru dintre cele mai importante operatii complexe
care se pot efectua cu acest produs: crearea diagramei de clase , Engeneering
(generarea din diagrama de clase a codului program), Reverse Engeneering (generarea
modelului nou creat sau modificat) din codul Visual Basic si Round - Trip Engeneering
(procesul de modelare, generare de cod, modificare cod si Reverse Engeneering).
Acest produs are trei nivele in care se poate lucra: User Services (nivelul
utilizator) care dispune de interfata cu utilizatorul (pentru prezentarea informatiilor
si obtinerea datelor); el mai realizeaza legatura cu nivelul urmator, Business
Sercices (nivelul de legatura intre utilizator si nivelul de date) care
raspunde la ceritele utilizatorului printr-un protocol dat de regulile de business
si Data Serrveces (nivelul de date) care mentine, acceseaza si modifica datele
Aceste nivele au rolul de ascundere a datelor fata de utilizator si de securitate
cu privire la accesarea lor. Nivelul cel mai important este nivelul de business
deoarece el face legatura intre date si utilizator, comunicand printr-un
protocol dat de niste reguli (denumite uzual - reguli de business). Aceste reguli
pot sa fie schimbate in timp ca urmare a mdificarilor de la nivelul utilizator,
insa schimbarea lor nu afescteaza nivelul datelor -; ceea ce este
un lucru deosebit de viabil.
IMPLEMENTARE
Deoarece aplicatia mea nu este o aplicatie de amploare mare am trecut peste
partea de dezvoltare. Refeitor la aceasta etapa o sa punctez cateva lucruri
in partea de Dezvoltari ulterioare ale aplicatiei.
Pentru implementarea aplicatiei am ales Visual Fox. Acesta pune la dispozitia
programatorului un set de unelte care-i usureaza munca -; numite generic
proiectant .
In Visual Fox exista mai multe moduri de generare a componentelor aplicatiei:
unul este cel clasic, compatibil cu Fox 2.0, altul este cel descris mai sus
(cu ajutorul proiectantului) si mai exista o varianta in care se poate
utiliza un „vrajitor” -; unelta care te ajuta sa generezi tabele,
baze de date, etc, spunandu-ti la fiecare pas ce ai de facut. Ultima varianta
nu se recomanda in cazul in care se doreste sa obtii o interfata
personalizata.
Eu am folosit varianta numarul doi, cu proiectant.
Indiferent de varianta aleasa, componentele trebuie sa fie asamblate in
vederea realizarii unei aplicatii. In acest scop, Visual Fox, pune la
dispozitie proiectantul de proiect (Project Designer). Eu am utilizat acest
proiectant la asamblarea componentelor individuale.
Proiectantele de baze de date, de tabele, de vederi, (Database Designer, Table
Designer) sunt foarte utile pentru crearea tabelelor, a bazelor de date, a vederilor.
Eu am folosit aceste proiectante pentru structura aplicatiei.
Proiectantele de meniuri, de rapoarte si de formulare sunt utile pentru crearea
interfetei cu utilizatorul. Eu am utilizat aceste proiectante pentru generarea
meniului principal: cabgravmen, a formularelor si a rapoartelor din cadrul apolicatiei.
Visual Fox mai pune la dispozitie un set de biblioteci de clase standard, care
pot sa fie specializate prin tehnica mostenirii; tehnica pe care am folosit-o
in crearea controalelor specializate aplicatiei.
3. MEMORIU JUSTIFICATIV
Pentru implementarea aplicatiei mele am ales Visual Fox deoarece acest produs
este destinat aplicatiilor centrate pe baze de date, permite programarea obiectuala
si pune la dispozitia dezvoltatorului un set de unelte care-i usureaza munca
-; numite generic proiectant.
3.1. SCHEMA BAZEI DE DATE
Luand in considerare etapele anterioare de analiza si proiectare
pot defini schema bazei de date. Aceasta contine 8 tabele conform entiatilor
definite in tabelul nr. 2.
Fig. 7 BAZA DE DATE CABGRAV CU TABELELE AFERENTE
Tabelele au intre ele legaturi de tipul 1 : N sau 1 : 1, legaturi care
rezulta din tabelul nr.4 in care am utilizat tehnica grilajului.
Legaturile de tipul M : N le-am implementat folosind tabele care corespund entitatilor
de legatura. In cazul bazei mele de date - cabgrav - am doua legaturi
de tipul M : N: avocat-;angajat si avocat-;client. Pentru a le reprezenta
am utilizat doua tabele de legatura: tabela contractasj, care contine date cu
privire la contractele de asistenta juridica si tabela contractmunca, care contine
date referitoare la contractele de munca. Prim urmare, in baza de date
voi avea patru legaturi de tipul 1 : N intre tabele implicate in
relatia M : N si intre tabelele de legatura astfel: avocat - contractmunca,
angajat -; contractmunca, avocat -; contractasj si client -;
contractasj
Fig. 8 STRUCTURA BAZEI DE DATE CABGRAV (TABELE SI LEGATURI INTRE ELE)
Structura fiecarei tabele este data in Anexa 1.
Mentionez faptul ca in baza de date, cabgrav, nu am stabilit reguli de
integritate referentiala pentru operatiile de: modificare, stergere si inserare,
deoarece, am tinut cont de regulile intergritatii referentiale la implementarea
acestor operatii in cod.
3.2. CONTRIBUTII PERSONALE
Exista mai multe posibilitati de abordare a unei aplicatii: pornind de la functii
sau pornind de la date. In ambele cazuri exista diferite modalitati de
realizare a operatiilor propuse. Eu am ales a doua varianta de implementare:
pornind de la date.
Interfata cu utilizatorul este cea mai importanta, deoarece, ea este aceea care
convinge utilizatorul de necesitatea unei astfel de aplicatii si de faptul ca
munca lui devine astfel mult mai usoara.
Punctul de lansare al aplicatiei este un meniu: cabgravmen (vezi figura 9).
Acesta are 5 optiuni: <Operare contracte>, <Operare personal>, <Instruire>,
<Eliminare date sterse> si <Iesire>.
Fig. 9 MENIUL CABGRAVMEN -; Operare contracte
Prima optiune -; <Operare contracte> - refera un submeniu in
care sunt grupate suboptiunile privitoare la contractele de munca si asistenta
juridica: <Conracte munca>, <Contracte asistenta juridica>, <Operare
rate> si <Clienti restantieri>.
A doua optiune -; <Operare personal> - refera tot un submeniu, care
grupeaza suboptiunile privitoare la avocati, angajati si clienti: <Avocati>,
<Angajati> si <Clienti> (vezi figura. 10).
Fig. 10 MENIUL CABGRAVMEN -; Operare personal
Cea de a treia optiune - <Instruire> -; refera o fereastra de unde,
cel care utilizeaza aplicatia poate accesa informatiile ajutatoare. Acestea
descriu actiunile corespunzatoare functionalitatii aplicatiei, cuprind definitii
ale termenilor utilizati in interfata si date cu privire la aplicatie.
Cea de a patra optiune -; <Eliminarea datelor sterse> -; refera
o procedura care elimina fizic (sterge din baza de date) datele marcate pentru
stergere de catre utilizator.
Ultima optiune - <Iesire> -; efectueaza inchiderea aplicatiei
(iesirea din aplicatie).
Fiecare suboptiune din cele doua submeniuri apeleaza, prin intermediul comenzilor
atasate, un formular. Interfata detine 7 formulare. Toate formularele utilizeaza
controale din libraria de clase lib_cls_cabgrav(vezi figura 11). Aceasta librarie
contine clase pe care le-am preluat din Visual Fox Pro si pe care le-a personalizat
in aplicatia de fata.
Fig. 11 LIBRARIA DE CLASE LIB_CLS_CABGRAV
Clasele componente ale librariei lib_cls_cabgrav sunt prezentate in tabelul
urmator:
Tab. 7 STRUCTURA LIBRARIEI DE CLASE LIB_CLS_CABGRAV
CRT. NUME CLASA CLASA PARINTE DESCRIERE
1 but_generic Command_button Buton de comanda.
2 cb_generic Combobox Caseta combinata sau Caseta cu lista.
3 ck_generic Checkbox Caseta de validare.
4 eb_generic Editbox Caseta de editare.
5 grid_generic Grid Grila.
6 lb_generic Label Eticheta.
7 op_generic Optiongroup Grup de butoane de optiune care contine 3 butoane.
8 op_generic2 Optiongroup Grup de butoane de optiune care contine 2 butoane.
9 pf_generic Pageframe Cadru de pagina care contine 3 pagini.
10 pf_generic2 Pageframe Cadru de pagina care contine 2 pagini.
11 sp_generic Spinner Caseta de incrementare cu incrementul 100.000,0000.
12 tb_generic Textbox Caseta de text.
Fiecare formular, mai putin cel destinat clientilor restantieri, tine cont
de operatia pe care utilizatorul doreste sa o realizeze: adaugare, modificare
sau stergere. Deasemenea, formularele contin cel putin doua butoane: unul pentru
validarea operatiei si transmiterea modificarilor spre baza de date (butonul
SALVEAZA) si altul pentru renuntarea la operatie si iesirea din formular (butonul
IESIRE).
Formularele utilizate in aplicatie sunt prezentate in figura 12.
Fig. 12 FORMULARELE UTILIZATE IN APLICATIE
Voi prezenta in continuare continutul fiecarui formular si asupra caror
date poate opera formularul.
Tab. 8 FIECARE FORMULAR OPEREAZA ASUPRA UNOR DATE
FORMULARUL OPEREAZA ASUPRA
1 fan angajatilor
2 fav avocatilor
3 fcasj contractelor de asistenta juridica
4 fcl clientilor
5 fclrestantieri datelor de intrare (avocat si contract de asistenta juridica)
pentru a obtine o situatie a clintilor restantieri
6 fcm contractelor de munca
7 fr ratelor de onorar
Formularul fan intitulat FORMULAR ANGAJATI afiseaza intr-o grila toti
angajatii tuturor cabinetelor individuale grupate. El opereaza asupra datelor
angajatilor. Sursa de date pentru grila este vederea lisan, pe care o sa o prezint
detaliat, mai jos, cand voi prezenta vederile utilizate in proiect.
Grila se gaseste in pagina intai a cadrului de pagina a formularului.
Utilizatorul alege un angajat din grila ordonata alfabetic dupa nume, prenume
si cod numeric personal. La accesarea paginilor urmatoare utilizatorul poate
vizualiza datele angajatului.
In pagina doi sunt afisate: numele, prenumele, codul numeric personal,
telefonul mobil al angajatului si grupul de doua optiuni, setat corespunzator,
daca angajatul are sau nu persoane in intretinere. Codul numeric
personal este afisat intr-o lista derulanta, alaturat de numele, prenumele
si codul adresei angajatului. La alegerea unui alt avocat din aceasta lista,
pagina 2 si 3 se vor actualiza corespunzator cu datele angajatului selectat.
In cazul adaugarii unui nou angajat utilizatorul trebuie sa valideze caseta
CNP NOU si sa introduca noul cod numeric personal in caseta de text afisata
in locul listei. Aceasta caseta de validare nu este accesilila pentru
operatiile de modificare si de stergere, deoarece codul numeric personal este
element de identificare pentu angajat.
In pagina trei sunt afisate adresa (localitatea, strada, numarul, blocul,
scara, apartamentul), telefonul fix si codul adresei. Localitatea, strada, telefonul
fix si mobil (telefonul mobil este pe pagina 2) si codul adresei se aleg din
liste derulante, unde cautarea se face incremental. In cazul in
care elementul cautat nu se gaseste in lista, utilizatorul poate accesa
caseta de validare corespunzatoare, situata in dreapta listei si poate
introduce valoarea noua in caseta de text afisata in locul listei.
De mentionat este faptul ca in cazul codului de adresa, in momentul
in care casetei de validare este accesata, in caseta de text nou
aparuta apare o valoarea propusa. Ea este calculata ca valoarea urmatoare codului
de adresa maxim inregistrat.
In partea de sus a formularului apare un grup de trei butoane de optiune
care arata operatiile posibile ce se pot efectua asupra datelor angajatului,
acestea sunt intitulate corespunzator: ADAUGARE, MODIFICARE si STERGERE.
La selectarea operatiei de adaugare toate controalele din paginile 2 si 3 devin
accesibile, inclusiv caseta de validare pentu cod numeric personal nou, permitand
astfel utilizatorului, sa mentioneze datele noului angajat.
La selectarea operatiei de modificare devin inaccesibile controalele corespunzatoare
urmatoarelor date: caseta de validare pentru cod numeric personal nou de pe
pagina 2 si toate datele adresei angajatului de pe pagina 3, mai putin lista
derulanta ce contine codurile adreselor si caseta de validare corespunzatoare.
Daca utilizatorul constata ca nici un cod de adresa existent nu corespunde noii
adrese el poate selecta caseta de validare pentu cod adresa nou. In acest
moment i se propune un cod de adresa si totodata, controalele de pe pagina 3
devin accesibile pentu introducerea datelor noii adrese.
La selectarea operatiei de stergere controalele paginilor 2 si 3 devin inaccesibile,
mai putin lista derulanta a codurilor numerice personale si a codurilor de adresa,
utilizatorul poate alege un alt angajat din pagina intai si poate
sa-i vizulizeze continutul accesand paginile 2 sau 3.
In partea de jos a formularului sunt puse la dispozitia utilizatorului
doua butoane. Primul, intitulat SALVEAZA, are atasat cod corespunzator si efectueaza
operatia selectata dintre cele trei operatii posibile amintite anterior, asigurand
integritatea datelor prin intermediul operatiilor atomice numite tranzactii.
Cel de al doilea buton intitulat IESIRE inchide formularul. El poate fi
utilizat si pentru renuntarea la modificarile facute asupra datelor angajatului,
afisate in paginile 2 si 3 amintite mai sus.
Acest formular se apeleaza din meniul aplicatiei, optinuea <Operare personal>
si suboptiunea <Angajati>.
Formularul fav intitulat FORMULAR AVOCATI afiseaza intr-o grila toti
avocatii din cadrul cabinetului grupat. El opereaza asupra datelor avocatilor.
Sursa de date pentu grila este vederea lisav, pe care o sa o prezint detaliat
cand voi prezenta vederile utilizate in proiect.
Grila se gaseste in pagina intai a cadrului de pagina a formularului.
Utilizatorul alege un avocat din grila ordonata alfabetic dupa nume, prenume
si cod numeric personal. La accesarea paginilor urmatoare utilizatorul poate
vizualiza datele avocatului.
In pagina doi sunt afisate: numele, prenumele, codul numeric personal,
telefonul mobil al avocatului precum si data intrarii in functia de avocat,
numarul deciziei si data iesirii din grup. Pentru cod numeric personal utilizez
o lista derulanta care foloseste acelasi principiu ca si in formularul
fan.
In pagina trei sunt afisate adresa (localitatea, strada, numarul, blocul,
scara, apartamentul), telefonul fix si codul adresei. Pentru mai multe detalii
a se citi informatiile despre pagina 3 din formularul fan.
In partea de sus a formularului apare un grup de trei butoane de optiune
care arata operatiile posibile ce se pot efectua asupra datelor avocatului,
acestea sunt intitulate corespunzator: ADAUGARE, MODIFICARE si STERGERE.
La selectarea operatiei de adaugare toate controalele din paginile 2 si 3 devin
accesibile, inclusiv caseta de validare pentu cod numeric personal nou, permitand
astfel utilizatorului, sa mentioneze datele noului avocat.
La selectarea operatiei de modificare devin inaccesibile controalele corespunzatoare
urmatoarelor date: caseta de validare pentru cod numeric personal nou de pe
pagina 2 si toate datele adresei angajatului de pe pagina 3, mai putin lista
derulanta ce contine codurile adreselor si caseta de validare corespunzatoare.
Daca utilizatorul constata ca nici un cod de adresa existent nu corespunde noii
adrese el poate selecta caseta de validare pentu cod adresa nou. In acest
moment i se propune un cod de adresa si totodata, controalele de pe pagina 3
devin accesibile pentu introducerea datelor noii adrese.
La selectarea operatiei de stergere controalele paginilor 2 si 3 devin inaccesibile,
mai putin lista derulanta a codurilor numerice personale si a codurilor de adresa,
utilizatorul poate alege un alt avocat din pagina intai si poate
sa-i vizulizeze continutul accesand paginile 2 sau 3.
In partea de jos a formularului sunt puse la dispozitia utilizatorului
doua butoane. Primul, intitulat SALVEAZA, are atasat cod corespunzator si efectueaza
operatia selectata dintre cele trei operatii posibile amintite anterior, asigurand
integritatea datelor prin intermediul operatiilor atomice numite tranzactii.
Cel de al doilea buton intitulat IESIRE inchide formularul. El poate fi
utilizat si pentru renuntarea la modificarile facute asupra datelor avocatului,
afisate in paginile 2 si 3 amintite mai sus.
Acest formular se apeleaza din meniul aplicatiei, optinuea <Operare personal>
si suboptiunea <Avocati>.
Formularul fcasj intitulat FORMULAR CONTRACTE DE ASISTENTA JURIDICA afiseaza
intr-o grila toate contractele de asistenta juridica ale cabinetelor individuale
grupate. El opereaza asupra datelor privitoare la aceste contracte. Sursa de
date pentu grila este vederea liscasj, pe care o sa o prezint detaliat cand
voi prezenta vederile utilizate in proiect.
Grila se gaseste in pagina intai a cadrului de pagina a formularului.
Utilizatorul alege un contract din grila ordonata alfabetic dupa avocat, apoi
dupa datele contractului (data si numar) iar apoi dupa client. La accesarea
paginilor urmatoare utilizatorul poate vizualiza datele contractului de asistenta
juridica.
In pagina doi sunt afisate: numarul si data contractului si partile contractante:
cabinetul, reprezentat prin avocat, si clientul. Numarul si data nu pot fi modificate
prin operatia de modificare pusa la dispozitia utilizatorului, deoarece acestea
sunt elemente de identificare pentru contract; ele devin inaccesibile daca utilizatorul
selecteaza operatia de modificare. Avocatul si clientul se vor selecta din cele
doua liste derulante puse la dispozitia utilizatorului, care sunt reactualizate
in cadrul metodei de initializare a fiecarei liste cu date „proaspete”
culese din tabela avocat respectiv client.
In pagina trei sunt afisate clauzele contractuale: obiect, onorar, clauza
speciala, data limita si numarul de exemplare. Obiectul, poate fi ales dintr-o
lista derulanta asemanatoare cu cele doua liste prezentate anterior: lista avocatilor
si cea a clientilor. Daca obiectul cautat nu este prezent in lista, utilizatorul
are posibilitatea sa valideze caseta OBIECT NOU si sa introduca obiectul nou
in caseta de text afisata in locul listei. Clauza speciala se afiseaza
intr-o caseta de editare; iar sursa de date este un camp memo. Pentu
a citi valoarea acestui camp utilizez o variabila de memorie creata cu
functia scatter, iar pentru operatia inversa, de actualizare a cimpului,
folosesc functia gather, in cadrul operatiilor atomice numite tranzactii.
In partea de sus a formularului apare un grup de trei butoane de optiune
care arata operatiile posibile ce se pot efectua asupra datelor contractului,
acestea sunt intitulate corespunzator: ADAUGARE, MODIFICARE si STERGERE.
La selectarea operatiei de adaugare toate controalele din paginile 2 si 3 devin
accesibile, inclusiv numarul si data contractului, permitand astfel utilizatorului,
sa mentioneze datele noului contract.
La selectarea operatiei de modificare devin inaccesibile controalele corespunzatoare
datelor de identificare ale contractului: numarul si data contractului.
La selectarea operatiei de stergere controalele paginilor 2 si 3 devin inaccesibile,
utilizatorul poate alege un alt contract din pagina intai si poate
sa-i vizualizeze continutul accesand paginile 2 sau3.
In partea de jos a formularului sunt puse la dispozitia utilizatorului
trei butoane. Primul, intitulat SALVEAZA, are atasat cod corespunzator si efectueaza
operatia selectata dintre cele trei operatii posibile amintite anterior, asigurand
integritatea datelor prin intermediul tranzactiilor. Cel de al doilea buton
intitulat LISTEAZA afiseaza contractul de asistenta juridica pregatit pentru
listarea la imprimanta. Am folosit in acest caz doua rapoarte: unul in
cazul contractelor de asistenta juridica pentru care nu s-a achitat nici o rata
- rlistcasjfararate si cel de al doilea in cazul contractelor de asistenta
juridica pentru care au fost achitate rate de onorar -; rlistcasjcurate.
Cel de al treilea buton numit IESIRE inchide formularul. El poate fi utilizat
si pentru renuntarea la modificarile facute asupra datelor contractului, afisate
in paginile 2 si 3.
Acest formular se apeleaza din meniul aplicatiei, optinuea <Operare contracte>
si suboptiunea <Contracte asistenta juridica>.
Formularul fcl intitulat FORMULAR CLIENTI afiseaza intr-o grila toti
clientii din cadrul cabinetului grupat. El opereaza asupra datelor clientilor.
Sursa de date pentu grila este vederea liscl, pe care o sa o prezint detaliat
ulterior.
Grila se gaseste in pagina intai a cadrului de pagina a formularului.
Utilizatorul alege un client din grila ordonata alfabetic dupa nume, prenume
si cod numeric personal. La accesarea paginilor urmatoare utilizatorul poate
vizualiza datele clientului.
In pagina doi sunt afisate: numele, prenumele, codul numeric personal,
telefonul mobil al clientului precum si calitatea pe care o detine clientul.
Calitatea poate fi una din urmatoarele valori: CLIENT, REPREZENTANT, GRAD DE
RUDENIE sau SOT. Utilizatorul poate sa aleaga calitatea clientului folosind
lista derulanta pusa la dispozitie. Pentru cod numeric personal utilizez o lista
derulanta care foloseste acelasi principiu ca si in formularul fan.
In pagina trei sunt afisate adresa (localitatea, strada, numarul, blocul,
scara, apartamentul), telefonul fix si codul adresei. Pentru mai multe detalii
a se citi informatiile despre pagina 3 din formularul fan.
In partea de sus a formularului apare un grup de trei butoane de optiune
care arata operatiile posibile ce se pot efectua asupra datelor clientului,
acestea sunt intitulate corespunzator: ADAUGARE, MODIFICARE si STERGERE.
La selectarea operatiei de adaugare toate controalele din paginile 2 si 3 devin
accesibile, inclusiv caseta de validare pentu cod numeric personal nou, permitand
astfel utilizatorului, sa mentioneze datele noului client.
La selectarea operatiei de modificare devin inaccesibile controalele corespunzatoare
urmatoarelor date: caseta de validare pentru cod numeric personal nou de pe
pagina 2 si toate datele adresei clientului de pe pagina 3, mai putin lista
derulanta ce contine codurile adreselor si caseta de validare corespunzatoare.
Daca utilizatorul constata ca nici un cod de adresa existent nu corespunde noii
adrese el poate selecta caseta de validare pentu cod adresa nou. In acest
moment i se propune un cod de adresa si totodata, controalele de pe pagina 3
devin accesibile pentu introducerea datelor noii adrese.
La selectarea operatiei de stergere controalele paginilor 2 si 3 devin inaccesibile,
mai putin lista derulanta a codurilor numerice personale si a codurilor de adresa,
utilizatorul poate alege un alt avocat din pagina intai si poate
sa-i vizulizeze continutul accesand paginile 2 sau 3.
In partea de jos a formularului sunt puse la dispozitia utilizatorului
doua butoane. Primul, intitulat SALVEAZA, are atasat cod corespunzator si efectueaza
operatia selectata dintre cele trei operatii posibile amintite anterior, asigurand
integritatea datelor prin intermediul tranzactiilor. Cel de al doilea buton
intitulat IESIRE inchide formularul. El poate fi utilizat si pentru renuntarea
la modificarile facute asupra datelor avocatului, afisate in paginile
2 si 3.
Acest formular se apeleaza din meniul aplicatiei, optinuea <Operare personal>
si suboptiunea <Clienti>.
Formularul fclrestantieri intitulat FORMULAR CLIENTI RESTANTIERI afiseaza in
formular o lista derulanta din care utilizatorul poate alege avocatul la care
doreste sa-i listeze clientii restantieri.
In partea de jos a formularului sunt puse la dispozitia utilizatorului
doua butoane. Primul -; RAPORT - afiseaza o situatie cu privire la fiecare
client restantier pentru fiecare contract de asistenta juridica incheiat:
ce onorar s-a stabilit, ce rate s-au achitat si care este suma restanta. Acest
formular genereaza un raport al clientilor restantieri, raport care are la baza
vederea lisclrestantieri. Cel de al doilea buton intitulat IESIRE inchide
formularul
Acest formular se apeleaza din meniul aplicatiei, optinuea <Operare contracte>
si suboptiunea <Clienti restantieri>.
Formularul fcm intitulat FORMULAR CONTRACTE DE MUNCA afiseaza intr-o
grila toate contractele de munca din cadrul cabinetului grupat. El opereaza
asupra datelor privitoare la aceste contracte. Sursa de date pentu grila este
vederea liscm, pe care o sa o prezint detaliat ulterior.
Grila se gaseste in pagina intai a cadrului de pagina a formularului.
Utilizatorul alege un contract din grila ordonata alfabetic dupa avocat (nume,
prenume, cod numeric personal), apoi dupa datele contractului (data si numar).
La accesarea paginii urmatoare utilizatorul poate vizualiza datele contractului
de munca.
In pagina doi sunt afisate partile contractante: cabinetul, reprezentat
prin avocat, si angajatul. Numarul si data nu pot fi modificate prin operatia
de modificare pusa la dispozitia utilizatorului, deoarece acestea sunt elemente
de identificare pentru contract; ele devin inaccesibile daca utilizatorul selecteaza
operatia de modificare. Avocatul si angajatul se vor selecta din cele doua liste
derulante puse la dispozitia utilizatorului, care sunt reactualizate in
cadrul metodei de initializare a fiecarei liste cu date „proaspete”
culese din tabela avocat respectiv angajat.
In partea de sus a formularului apare un grup de trei butoane de optiune
care arata operatiile posibile ce se pot efectua asupra datelor contractului:
ADAUGARE, MODIFICARE si STERGERE.
La selectarea operatiei de adaugare toate controalele din pagina a doua devin
accesibile, inclusiv numarul si data contractului, permitand astfel utilizatorului,
sa mentioneze datele noului contract.
La selectarea operatiei de modificare devin inaccesibile controalele corespunzatoare
datelor de identificare ale contractului: numarul si data contractului.
La selectarea operatiei de stergere controalele paginii 2 devin inaccesibile,
utilizatorul poate alege un alt contract din pagina intai si poate
sa-i vizualizeze continutul accesand pagina a doua.
In partea de jos a formularului sunt puse la dispozitia utilizatorului
doua butoane. Primul, intitulat SALVEAZA, are atasat cod corespunzator si efectueaza
operatia selectata dintre cele trei operatii posibile amintite anterior, asigurand
integritatea datelor prin intermediul tranzactiilor. Cel de al doilea buton
intitulat IESIRE inchide formularul. El poate fi utilizat si pentru renuntarea
la modificarile facute asupra datelor contractului, afisate in cea de
a doua pagina.
Acest formular se apeleaza din meniul aplicatiei, optinuea <Operare contracte>
si suboptiunea <Contracte munca>.
Formularul fr intitulat FORMULAR RATE opereaza asupra ratelor de onorar ale
unui contract de asistenta juridica. In formular folosesc un cadru care
are trei pagini.
In prima pagina utilizatorul are posibilitatea sa aleaga dintr-o grila
un contract de asistenta juridica. Grila are aceleasi propietati cu grila din
formularul fcasj, care este destinat contractelor de asistenta juridica.
La accesarea paginii urmatoare (pagina numarul doi) utilizatorul poate vizualiza
datele de identificare ale contractului si ratele corespunzatoare acestuia -
afisate intr-o grila. Sursa de date pentu grila este vederea lisrata.
Datele sunt ordonate dupa data si apoi dupa numarul ratei. Utilizatorul poate
alege una din ratele afisate pe pagina doi, dupa care, trecand la pagina
urmatoare (pagina numarul trei) va putea accesa datele ratei alese anterior.
In pagina trei sunt afisate in controle corespunzatoare datele de
identificare ale ratei: numar si data si suma care s-a achitat. Pentru suma
utilizez o caseta de incrementare cu incrementul 100.000,0000 din clasa personalizata
sp_generic.
In partea de sus a formularului apare un grup de trei butoane de optiune
care arata operatiile posibile ce se pot efectua asupra ratelor de onorar, acestea
sunt intitulate corespunzator: ADAUGARE, MODIFICARE si STERGERE.
La selectarea operatiei de adaugare toate controalele din pagina a treia devin
accesibile, inclusiv numarul si data ratei, permitand astfel utilizatorului,
sa mentioneze datele noii rate.
La selectarea operatiei de modificare devin inaccesibile controalele corespunzatoare
datelor de identificare ale ratei: numarul si data.
La selectarea operatiei de stergere controalele paginii trei devin inaccesibile,
utilizatorul poate alege o alta rata din grila de rate (pagina doi) si poate
sa-i vizualizeze continutul accesand pagina trei.
In partea de jos a formularului sunt puse la dispozitia utilizatorului
trei butoane. Primul, intitulat SALVEAZA, are atasat cod corespunzator si efectueaza
operatia selectata, asigurand integritatea datelor prin intermediul tranzactiilor.
Cel de al doilea buton intitulat LISTEAZA este identic cu butonul din formularul
fcasj care are acelasi nume. L-am folosit si in acest formular pentu a
usura munca utilizatorului. Pentru mai multe informatii despre acest buton a
se citi la formularul fcasj, anterior cadrul acestui capitol. Cel de al treilea
buton numit IESIRE inchide formularul.
Acest formular se apeleaza din meniul aplicatiei, optinuea <Operare contracte>
si suboptiunea <Operare rate>.
Rapoartele utilizate in aplicatie sunt prezentate in figura 13.
Fig. 13 RAPOARTELE UTILIZATE IN APLICATIE
Raportul rclrestantieri il utilizez pentru a obtine lista clientilor restantieri
ai unui cabinet individual de avocatura. Raportul utilizeaza vederea lisclrestantieri,
vedere parametrizata pentu codul numeric personal al avocatului.
Acest raport se genereaza din formularul fclrestantieri, cand utilizatorul,
dupa ce a selectat din lista un avocat, efectueaza click pe butonul RAPORT din
formularul sus numit.
Raportul rlistcasjcurate il utilizez pentru a putea previzualiza un
contract de asistenta juridica, care are achitata cel putin o rata de onorar
si eventual pentru a-l lista. Raportul utilizeaza vederea liscasjpar, vedere
parametrizata pentu elementul de identificare al unui contract de asistenta
juridica (numar si data).
Acest raport se genereaza din formularul fcasj si din formularul fclrestantieri,
cand utilizatorul, dupa ce a selectat un contract, efectueaza click pe
butonul LISTEAZA.
Raportul rlistcasjcurate il utilizez pentru a putea previzualiza un
contract de asistenta juridica, care nu are achitata nici o rata de onorar si
eventual pentru a-l lista. Raportul utilizeaza vederea liscasjpar1, vedere parametrizata
pentu elementul de identificare al unui contract de asistenta juridica (numar
si data).
Acest raport se genereaza din formularul fcasj si din formularul fclrestantieri,
cand utilizatorul, dupa ce a selectat un contract, efectueaza click pe
butonul LISTEAZA.
Utilizez doua rapoarte diferite pentru previzualizarea contractelor de asistenta
juridica mai mult din motive „estetice” pentru a elimina spatiile
libere care apar in cazul in care contractul nu are achitata nici
o rata.
Vederile utilizate in aplicatie sunt prezentate in figura 14.
Fig. 14 VEDERILE UTILIZATE IN APLICATIE
Vederea lisan utilizeaza tabelele: adresa, persoana si angajat pentru a obtine
o imagine complexa a tuturor angjatilor. Ea ordoneaza datele dupa nume, prenume
si cod numeric personal.
Aceasta vedere este sursa de date a grilei din formularul fan, utilizata pentru
afisarea tuturor angajatilor cabinetului grupat.
Vederea lisav utilizeaza tabelele: adresa, persoana si avocat pentru a obtine
o imagine complexa a avocatilor din cabinet. Ea ordoneaza datele dupa nume,
prenume si cod numeric personal.
Aceasta vedere este sursa de date a grilei din formularul fav, utilizata pentru
afisarea avocatilor cabinetului grupat.
Vederea liscasj utilizeaza tabelele: adresa, persoana de doua ori (o data
pentru datele avocatului si a doua oara pentru datele clientului), avocat, client
si contractasj pentru a obtine o imagine complexa a tuturor contractelor de
asistenta juridica pentru toti avocatii. Ea ordoneaza datele dupa avocat (nume,
prenume si cod numeric personal), dupa datele de identificare ale contractului
(data si numar) si apoi dupa client (nume, prenume si cod numeric personal).
Aceasta vedere este sursa de date a grilei din formularul fcasj, utilizata pentru
afisarea tuturor contractelor de asistenta juridica.
Vederea liscasjpar1 este o vedere parametrizata pentu un anumit co