|
Motivatia alegerii prezentei teme este determinata de o cerinta reala: dezvoltarea unei aplicatii de gestionare a activitatii pe teren precum si a relatiilor cu clientii in cadrul unei firme de constructie si montaj de tamplarie PVC si geam termopan.
In cadrul aplicatiei s-a avut in vedere satisfacerea nevoilor de business ale firmei:
Relatia cu clientii actuali si viitori: contracte curente si contracte viitoare, situatia platilor, organizarea activitatilor viitoare in functir de cerintele clientilor (producerea anumitor profile, comanda catre furnizori necesara pentru a duce la implinire un anumit contract), urmarirea incasarilor (sovabilitatea unui client), eficienta lucrarilor de montaj in functie de lcatie/santier.
Urmarirea contractelor: pe langa relatia cu clientii s-a dorit in cadrul aplicatiei posibilitatea de a urmarii contractele in functie de locatie sau in functie de client. Urmarirea in functie de locatie duce la eficientizarea procesului de productie in ideea in care activitatea viitoare e cunoscuta. Din punct de vedere al clientului, aplicatia va oferi posibilitatea de a determina solvabilitatea acestuia, si de asemenea importanta lui.
Organizarea eficienta a lucrarilor de mntaj: lucrarea de fata trateaza situatia in care firma baneficiara a aplicatiei are activitate pe o suprafata extinsa in cadrul tarii dar mai nou si a Uniunii Europene si un singur punct de lucru. Se cere, deci, o buna organizarea a lucrarilor de montaj pentru a micsora cheltuielile aferente prin prisma mentinerii unei nivel al satisfacerii clientului ridicat. Acest lucru nu tine explicit de aplicatie insa, evidenta clara a situatiei pe teren si a importantei clientului combinata cu un bun management va conduce catre telul comun al oricarei firme si anume prosperitate.
Urmarind cerintele clientului am considerat necesara o analiza mai amanuntita a cestora. In cele ce urmeaza voi prezenta analiza respectiva sub forma unui set de intrebari si raspunsuri.
Situatia lucrarilor pe un anumit client,
Situatia incasarilor de la un anumit client,
Lucrarile in desfasurare in momentul prezent,
Inspectiile care trebuie facute pentru anumite lucrari,
Valoarea lucrarilor de intretinere,
Valoarea tuturor lucrarilor.
Platforma folosita in cadrul proiectului
Suportul software a fost asigurat de sistemul de operare Windows XP Professional cu Service Pack 2 instalat, Oracle Data Base 10g2, Oracle Developer Suite 10g.
Suportul hardware de care am beneficiat in realizarea aplicatiei a constat intr-un sistem cu procesor Pentium4 3GHz cu nucleu Prescot, memorie de lucru de 1024MB DDR400 si hard-disk Seagate Baracuda SATA 80GB.
Modelul relational al bazei de date folosite pentru realizarea aplicatiei
Pentru realizarea si gestionarea continutului aplicatiei s-a apelat la o baza de date realizata in ORACLE.
Entitatile sunt reprezentate sub forma unor table dupa cum urmeaza:
CONTRACTE
PK
COD_CONTRACT
Number
Cheie primara contracte
NR_CONTRACT
Number
numarul contractului introdus manual
DESCRIERE
Varchar2
obiectul contractului
FK
COD_CLIENT
Number
referinta in tabela de clienti
FK
COD_ADRESA_FACTURARE
Number
referinta in tabela adrese pt adresa la care se emite factura
FK
COD_ADRESA_MONTAJ
Number
referinta in tabela adrese pt adresa la care se executa lucrarea
VALOARE
Number
valoarea contractului in moneda referita de cod_moneda
FK
COD_MONEDA
Number
moneda in care s-a incheiat contractul
VALOARE_DE_INCASAT
Number
Valoarea ramasa de incasat din contract.
DATA_CONTRACT
Date
data semnarii contractului
TERMEN_PREDARE
Date
deta la care se preconizeaza la care se va finaliza lucrarea
DATA_TERMINARII
Date
Data efectiva la care s-a terminat lucrarea si de la care se calculeaza garantia
TERMEN_INTRETINERE
Number
Numarul de luni la care se face intretinerea
PERIOADA_GARANTIE
Number
Numarul deluni in care lucrarea este in garantie
STATUS
Number
- 1: contractul s-a semnat si se asteapta demararea lucrarilor;
- 2: lucrarea este in desfasurare;
- 3: lucrarea se afla in asteptare din motive obiective datorate clientului;
- 4: lucrarea a fost acceptata de client
OBSERVATII
Varchar2
Informatii suplimentare
ACTIV
Number
1 - active in sistem
0 - inactive in sistem
LINII
PK
COD_LINIE
Number
Cheie primara a tebelei in care se regasesc liniile contractelor
FK
COD_CONTRACT
Number
Referinta la contractul din care face parte linia
NR_LINIE
Number
Numarul liniei in cadrul contractului
FK
COD_ARTICOL
Number
Referinta in tabela articole
CANTITATE
Number
Cantitate
PU
Number
Pret unitar
DATA_MONTAJ
Date
Data la care se va monta articolul respectiv
OBSERVATII
Varchar2
Informatii suplimentare
DIM_X
Number
Lungime
DIM_Y
Number
Inaltime
TIP_GEAM
Varchar2
Tehnologie, nuanta
ACTIV
Number
1 - active in sistem
0 - inactive in sistem
ARTICOLE
PK
COD_ARTICOL
Number
Cheie primara a tebelei articole
SIMBOL_ARTICOL
Varchar2
Cod intern al articolului
DENUMIRE_ARTICOL
Varchar2
Denumire articol(tip de profil, tip de serviciu.)
FK
COD_UM
Number
Referinta in tabela UM
OBSERVATII
Varchar2
Informatii suplimentare
ACTIV
Number
1 - active in system
0 - inactive in sistem
UM
PK
COD_UM
Number
Cheie primara
SIMBOL_UM
Varchar2
Ex: ml(metro liniar), kg(kilogram)
DESCRIERE_UM
Varchar2
Ex: metro liniar, kilogram
OBSERVATII
Varchar2
Informatii suplimentare
ACTIV
Number
1 - active in system
0 - inactive in sistem
CLIENTI
PK
COD_CLIENT
Number
Cheie primara
DENUMIRE_CLIENT
Varchar2
Numele clientului
TIP_CLIENT
Number
0 - persoana fizica
1 - persoana juridica
NR_IDENTIFICARE
Varchar2
Persoana fizica - CNP
Persoana juridica - cod unic de inregistrare
OBSERVATII
Varchar2
Informatii suplimentare
ACTIV
Number
1 - active in system
0 - inactive in sistem
ADRESE
PK
COD_ADRESA
Number
Cheie primara
FK
COD_CLIENT
Number
Referinta in tabela CLIENTI
TARA
Varchar2
Tera in care e inregistrat clientul
JUDET/REGIUNE
Varchar2
Judetul sau regiunea in care e inregistrat clientul
LOCALITATE
Varchar2
Localitatea
COD_POSTAL
Number
Codul postal
ADRESA1
Varchar2
Strada, numar, etaj, apartament.
ADRESA2
Varchar2
ADRESA3
Varchar2
ADRESA4
Varchar2
TIP_ADRESA
Number
1 - facturare;
0 - montaj
OBSERVATII
Varchar2
Informatii suplimentare
AVTIV
Number
1 - active in system
0 - inactive in sistem
CONTACTE
PK
COD_CONTACT
Number
Cheie primara
FK
COD_CLIENT
Number
Referinta in tabela CLIENTI
FIX1
Varchar2
Telefon, fax, telex, email.
FIX2
Varchar2
MOBIL1
Varchar2
MOBIL2
Varchar2
FAX
Varchar2
Varchar2
OBSERVATII
Varchar2
Informatii suplimentare
ACTIV
Number
1 - active in system
0 - inactive in sistem
INTRETINERI
PK
COD_INTRETINERE
Number
Cheie primara
FK
COD_CONTRACT
Number
Referinta la tabela CONTRACTE
DESCRIERE
Varchar2
Obiectul intretinerii
DATA
Date
Data la care s-a efectuat intretinerea
VALOARE
Number
Valoarea in care s-a efectuat plata
FK
COD_MONEDE
Number
Refeinta la tabela MONEDE
PLATIT
Number
0 - lucrare in garantie;
1 - la cerinta clientului
OBSERVATII
Varchar2
Informatii suplimentare
ACTIV
Number
1 - active in sistem
0 - inactive in sistem
MONEDE
PK
COD_MONEDA
Number
Cheie primara
SIMBOL
Varchar2
Ex: RON, EUR, USD
DESCRIERE
Varchar2
Ex: Romanian Leu, Euro
OBSERVATII
Varchar2
Informatii suplimentare
ACTIV
Number
1 - active in system
0 - inactive in sistem
INCASARI
PK
COD_INCASARE
Number
Cheie primara
FK
COD_CLIENT
Number
Referinta la tabela CLIENTI
DESCRIERE
Varchar2
Obiectul incasarii
VALOARE
Number
Valoarea incasarii
FK
COD_MONEDA
Number
Refeinta la tabela MONEDA
DATA_INCASARE
Date
Data la care s-a efectuat incasarea
TIP
Number
0 - avans;
1 - plata
OBSERVATII
Varchar2
Informatii suplimentare
STATUS
Number
0 - aplicata partial;
1 - aplicata total
2 - neaplicata pe contract;
ACTIV
Number
1 - active in sistem
0 - inactive in sistem
REST_DE_APLICAT
Number
Pentru aplicare partiala, valoarea ramasa de aplicat
APLICARI
PK
COD_APLICARE
Number
Cheie primara
FK
COD_INCASARE
Number
Referinta la incasarea din care se face aplicarea
FK
COD_CONTRACT
Number
Referinta la contractul pe care aplic incasarea
FK
COD_MONEDA
Number
Referinta in tabela moneda, preluata automat de la nivelul incasarii
VALOARE
Number
Valoarea aplicarii
DATA_APLICARII
Data
Data la care s-a aplicat incasarea pe contract/parte din contract
STATUS
Number
0 - aplicare reversata;
1 - aplicare valida
OBSERVATII
Varchar2
Informatii suplimentare
ACTIV
Number
1 - active in system
0 - inactive in sistem
Urmeaza modelul realational, si interpretarea acestuia.
Interpretare:
a. Fiecare contract poate avae mai multe linii - fiecare contract este intocmit pentru unul sau mai multe articole fiecare articol ocupand o singura lunie.
b. Fiecare contract poate avea mai multe aplicari - in functie de disponibilitatea de plata a clientului, acesta poate sa plateasca in contul unui contract intr-unul (plata integrala) sau mai multe etape (plata esalonata).
c. Un contract sigur are o moneda in care este incheiat - clientul are libertatea de a isi alege moneda in care sa faca plata.
d. Un contract poate avea mai multe intretineri efectuate - in functie de clauzele negociate, se poate oferi intretinerea periodica a lucrarii efectuate, in perioada de garantie costurile fiind suportate de firma sau dupa terminarea perioadei de garantie contra cost.
e. Un contract sigur are un client - contractul este uninominal.
f. Un contract are mai multe adrese (una de facturare, una de montaj) - trebuie facuta distinctie intre adrsesa la care va fi trimisa echipa de lucru si cea pe care se face facturarea.
Serviciile pot fi introduse ca articol, iar la unitatea de masura se selecteaza moneda in care se face serviciul.
Pot exista intretineri la un contract, care vor avea o valoare. Aceste intretineri pot avea loc in perioada de garantie, si atunci vor fi suportate de constructor, sau in afara perioadei de garantie, si vor fi suportate de client.
Un client face plati catre constructor. Aceasta incasare de la client poate fi un avans pt una sau mai multe lucrari, sau o plata prin care se stinge un contract terminat. Incasarile se aplica, printr-una sau mai multe aplcari, pe unul sau mai multe contracte. Ramane la alegerea beneficiarului cum considera ca este o plata de la client, avans sau plata.
Printr-o aplicare se realizeaza plata totala sau partiala a unui contract dintr-o incasare.
O aplicare poate fi anulata daca a fost gresit aplicata, si se actualizeaza atunci in plus cu suma respectiva valoarea ramasa neaplicata din incasare.
Partea administrativa:
Se introduce simblolul pt moneda (RON, EUR, etc), o scurta descriere si eventual orice informatie suplimentara in campul Observatii.
Daca o moneda nu mai este de actualitate, se poate fie sterge(butonul STERGE) sau poate fi inactivata.
In cazul in care se introduce o moneda si s-a gresit, sau se renunta la a o introduce, daca nu s-a salvat, informatia poate fi anulata apasand butonul REVOCARE. Daca s-a salvat informatia, se sterge cu butonul STERGERE sau butonul Delete din bara de butoane si se salveaza.
Informatia se salveaza in tabela (COMMIT) cu butonul SALVEAZA sau cu butonul Save din bara de butoane.
Pt a introduce o informatie noua, se apasa butonul New din bara de butoane.
Introducere unitati de masura
Similar cu forma de introducere monede, se introduce un simbol pentru moneda, o descriere si eventualele informatii suplimentare.
Raman valabile aceleasi observatii cu privire la modul de operare
Se introduce un simbol pt fiecare articol pe baza caruia se poate identifica tipul profilului folosit. Unitatea de masura este selectata din LOV-ul asociat tabelei de unitati de masura.
Aici se introduc si alte obiecte care pot face parte din natura contractului (transport, materiale auxiiare, etc.)
Se introduce numele clientului, tipul acestuia, si in functie de tip numarul unic de identificare: CNP pt persoane fizice, numarul de inregistrare fiscala pt societati comerciale.
Dupa salvare, se pot introduce adresele aferente clientului (de montaj sau de facturare) precum si modalitatile de contact aferente.
Pt un client deja creat care nu are aceste informatii, cautam clientul (F11 - criteriu de cautare - CTRL+F11) si se introduc informatiile corespunzator.
Codul clientului este preluat automat de la canvas-ul CLIENTI. Pe baza acestui cod care este Foreign Key in tabela de adrese, se introduc datele necesare. Se selecteaza tipul adresei, facturare/montaj.
Dupa salvare se revine la clientul intial prin apasarea butonului INAPOI LA CLIENT.
Similar cu forma de introducere adrese se introduc si contactele pentru un client. Pentru a reveni la forma initiala de clienti se foloseste butonul INAPOI LA CLIENT.
Partea functionala:
In forma de contracte se introduc date referitoare la contractul care urmeaza a fi incheiat, sau daca se modifica conform realitatii diferite date de pe un contract deja creat.
Se introduc initial un nr de contract, o descriere. Se selecteaza din LOV clientul si moneda contractului. Valoarea de incasat va fi initial egala cu valoarea contractului.
Data contractului se introduce intial, este data la care s-a incheiat contractul.
Termenul de predare reprezinta termenul la care lucrarea va fi predata beneficiarului.
Data terminarii este data la care s-a terminat efectiv lucrarea si de la care se calculeaza perioada de garantie, introdusa ulterior. Se introduc termenele de intretinere, la care se va face inspectia lucrarii in perioada de garantie.
In functie de stadiul lucrarilor, se selecteaza in campul STATUS starea contractului.
Dupa salvare, se pot introduce in detaliu liniile aferente contractului.
Codul de articol este preluat din LOV-ul creat la nivelul tabelei de articole. Cantitatea, pretul unitar, data la care s-a montat efectiv piesa respectiva, si informatii suplimentare.
Se selecteaza din LOV clientul care face plata, se introduce o descriere, valoarea, moneda (LOV la monede), tipul incasarii (avans sau plata aferenta uneia sau mai multor lucrari).
Dupa salvare se pot face aplicari din plata respectiva. Pt o incasare neaplicata, se introduc ulterior aplicarile dupa cautarea incasarii.
Dupa ce s-a gasit incasarea din care se fac aplicari, se trece la introducerea aplicarilor:
Selectarea contractului din LOV, valoarea aplicata pe contract, data.
Daca aplicarea a fost eronata, se schimba statusul in Returnata si se salveaza.
Intretinerile reprezinta lucrari efectuate ulterior finalizarii asupra unui contract. Se selecteaza contractul aferent, se introduce o descriere, data la care s-a efectuat intretinerea, o valoare, moneda (LOV monede). In functie de natura lucrarii (garantie sau service la cererea clientului) se selecteaza platitorul lucrarii.
Pentru a putea face fata conditiilor "extreme" de pe piata, societatile din sectorul productiv trebuie sa se adapteze, sa puna la dispozitia consumatorilor produse noi, intr-un timp mai scurt, dar care sa raspunda, in acelasi timp, mai bine nevoilor acestora. Previzionarea, planuirea si programarea eficienta sunt fundamentale in procesul de productie - iar ERP-ul este obligatoriu daca dorim sa obtinem aceste performante. Un astfel de sistem, implementat cu succes, ajuta la imbunatatirea afacerii prin optimizarea capacitatii de productie si a inventarului pentru a reduce costuri si a mari profitabilitatea, prin finalizarea la timp a produselor.
In lucrarea de fata am reusit sa realizez un ERP care sa gestioneze activitatea unei firme avand ca suport baza de date ORACLE si modulul de dezvoltare ORACLE Developer Suite. Baza de date ORACLE ofera o serie de beneficii care nu pot fi ignorate atunci cand se doreste realizarea unei aplicatii de calitate: securitatea, integritatea datelor, facilitatea de back-up, managementul resurselor, portabilitate, dezvoltare ulterioara (modularitate). Din momentul luarii acestei decizii era evidenta utilizarea pachetului de dezvoltare Forms si Reports in special datorita excelentei integrari cu bazele de date Oracle. Oracle Forms si Reports exceleaza in domeniul aplicatiilor (in speta economice) cu baze de date. Interfetele clasice pentru aceste aplicatii se pot rezolva relativ repede cu un spor de productivitate remarcabil, iar gestiunea dialogului client (developer) - server este bine fundamentata si simplu de realizat in conditii de performanta.
Ca obiective de viitor, in conditiile cerintei explicite din partea beneficiarului aplicatiei, se va trece la portarea aplicatiei pe internet astfel incat accesul angajatilor la informatiile necesare in activitate firmei sa fie facil, iar informatiile sa fie pastrate pe un server de date securizat, astfel incat sa nu existe riscul instrainarii acestora catre persoane neautorizate.
Documentatie
Bibliografie on-line
www.oracle.com
Suport video
Pearson PTR - Oracle Forms Developer Complete Video Course