UNIVERSITATEA AL. I. CUZA
FACULTATEA DE ECONOMIE SI ADMINISTRAREA AFACERILOR
AN III, SPECIALIZAREA INFORMATICA ECONOMICA
GRUPA 6, SEMIGRUPA 2
STUDIU DE CAZ
LA DISCIPLINA
ANALIZA SISTEMELOR INFORMATIONALE
I ANALIZA SISTEMULUI
IDENTIFICAREA PROIECTULUI
Definirea misiunii, obiectivelor si a strategiei organizationale a firmei S.C. CF Moldova S.A.
Misiunea
capitale in domeniul cailor ferate, drumuri, poduri, constructii civile, constructii industriale si hidrotehnice, precum si pentru terti, atat in tara cat si in strainatate.
Obiectivele
Mentinerea ritmului de reutilare a bazei tehnice a societatii (mijloace de
transport, utilaje de mica mecanizare si mare mecanizare) in scopul cresterii productivitatii si calitatii lucrarilor.
Identificarea de noi clienti (atat regii cat mai ales privati) pe actuala raza
a societatii.
3. Initierea de actiuni de promovare si parteneriat pentru a extinde raza de
activitate atat la nivel regional cat si pe pietele de constructii externe.
4. Promovarea actiunilor de crestere a increderii clientilor in capacitatea si potentialul firmei, de imbunatatire a imaginii companiei, de reclama pentru produsele si serviciile firmei.
5. Implementarea de proiecte pilot pentru a studia o eventuala reorganizare a companiei, bazata pe centre de profit.
6. Implementarea la toate nivelurile, a sistemului de management bazat pe standardul ISO 9002/2000 si achizitionarea unui program informatic al firmei S.C. TOTAL SOFT S.A. Bucuresti numit Charisma.
7. Reducerea costurilor de productie precum si a cheltuielilor generale la toate nivelurile societatii.
8. Implicarea directa cu nominalizarea responsabilitatilor, a conducerii de la toate nivelurile in reducerea cheltuielilor directe si indirecte.
9. Imbunatatirea activitatilor de analiza financiara pentru a permite actiuni corective ale costurilor in timp de reactie util.
10. Continuarea demersurilor pentru reesalonarea restantelor de plata la toate taxele datorate statului, efectuarea de plati preponderent pentru plata impozitelor curente.
11. Executia de lucrari prin diferite forme de compensare cu bugetul statului, pentru a diminua presiunea fiscala asupra societatii.
12. Continuarea actiunii de mobilizare a membrilor PAS pentru participarea activa de privatizare a companiei.
Strategia
Strategia de crestere - consta in extinderea semnificativa a volumului de activitate. Din cele trei strategii de crestere la S.C. CF Moldova S.A. se manifesta strategia concentrarii prin adaugarea unor noi segmente de piata (hale industriale cu toate dotarile aferente - instalatii, pod rulant, linii ferate de incinta; casute din lemn de vacanta sau utilizare permanenta)
Strategia concurentiala (de afaceri)
Diferentierea produselor sau serviciilor prin: calitate; promptitudine, corectitudine si competenta pentru servicii; durabilitate, functionalitate si siguranta produselor.
Descrierea organizarii intreprinderii
1.2.1 Obiect de activitate, relatii cu partenerii de afaceri
S.C. CF MOLDOVA S.A. isi are sediul central in orasul Iasi (Soseaua Nationala, Nr.5) , din regiunea Moldova, regiune cu o dezvoltare economica relativ scazuta. Activitatea de prestare a serviciilor se desfasoara pe piata interna, cu precadere in zona Moldovei.
Societatea este structurata in 6 subunitati, astfel:
Santierul 61 Iasi - specializat in lucrari civile, industriale, drumuri, autostrazi, poduri rutiere si feroviare, consolidare terasamente, linii C.F. De asemenea are in componenta si un lot de instalatii sanitare, electrice, incalzire termica, ventilatie ce actioneaza pe intreaga zona a societatii;
Santierul 62 Campulung Moldovenesc - constructii feroviare, lucrari civile, consolidari, poduri, consolidari terasamente si versanti;
Santierul 63 Roman - specializat in constructii feroviare, edilitare, consolidari poduri, terasamente si versanti, lucrari civile;
Santierul 64 RK Iasi - specializat in lucrari, reparatii capitale si intretineri cai ferate;
Santierul 65 Iasi - instalatii, centralizari electrodinamice, linii contact, linii telefonice (executie, intretinere, reparatii, conectari retele si echipamente);
Sectia de Utilaj si Transport (SUT CF) - prestari servicii cu utilaje de constructii si mijloace de transport auto sau CF, intretinerea si repararea acestora, extragerea si valorificarea produselor de balastiera.
Constructii civile, industriale, agrozootehnice, edilitare si consolidari cladiri;
Cai ferate, constructii conexe CF (triaje, depouri, canale revizie, turnuri de control);
Consolidare terasamente si versanti, lucrari de regularizare albii, constructii hidrotehnice;
Constructii si reabilitare drumuri, poduri, autostrazi;
Constructii radiorelee, turnuri televiziune, centrale telefonice;
Instalatii semnalizari si automatizari feroviare;
Instalatii termice, tehnologice, electrice, sanitare, climatizare;
Canalizari si aductiuni de apa;
Productie de betoane, prefabricate si agregate-balastiera si cariera;
Activitati de transport, service si reparatii auto.
blocuri de locuinte;
camine de elevi, camine studentesti sau de pensionari;
spitale;
complexe alimentare;
cladiri administrative;
sali de sport sau de spectacole;
turnuri RTV;
cladiri agrozootehnice;
hangare si piste de aeroport;
regularizari albii de rauri;
cai rutiere;
aductiuni de apa.
Este de mentionat faptul ca pentru toate tipurile de cladiri S.C. Constructii Feroviare este capabila si autorizata sa execute toate instalatiile necesare unei bune exploatari (instalatii electrice, sanitare, de incalzire, gaze de ventilatie, telefonice).
In cursul ultimilor doi ani societatea si-a diversificat si mai mult activitatile, fiind capabila in prezent sa execute lucrari de reabilitari drumuri nationale si casute din lemn de vacanta sau utilizare permanenta.
Analiza activitatii firmei s-a realizat prin urmatoarele patru aspecte:
furnizorii firmei S.C. CF Moldova S.A sunt impartiti in doua categorii: furnizori de materiale (ciment, beton, traverse de cale ferata, sine, lemn, piatra sparta, balast, armaturi, prefabricate etc.); furnizori de servicii (utilitati - energie electrica, apa etc.); subantreprenor la contracte de subantrepriza
clientii sunt reprezentati prin: clienti productie de baza (beneficiari ai lucrarilor de constructii, reparatii capitale, amenajari drumuri); clienti ai productiei auxiliare (clienti vanzari materiale); debitori (cei care au inchiriat spatii)
barierele de intrare pe piata sunt relativ putine
Societatea Comerciala Constructii Feroviare "Moldova" S.A. Iasi face parte din categoria firmelor mari, de traditie in regiunea istorica Moldova, fiind un lider recunoscut al pietei constructiilor feroviare, dar si cu o buna orientare spre alte categorii de constructii. Aceasta pozitie s-a obtinut printr-o flexibilitate organizatorica buna, dotare Si logistica superioara. Tinta firmei este confirmarea pozitiei de lider regional pe intreaga piata a constructiilor iar viziunea firmei este de a atinge nivelul de excelenta in afaceri. S.C. CF Moldova S.A. are un sistem de asigurare a calitatii certificat ISO 9002.
In domeniul calitatii firma si-a propus o serie de obiective, cum ar fi:
- imbunatatirea continua a calitatii tuturor produselor si serviciilor, pentru a satisface cerintele si asteptarile fiecarui client;
- minimizarea cheltuielilor interne si sporirea profitului;
- situarea in pozitia cea mai favorabila in raport cu concurenta.
Se pune accent pe durabilitatea, functionalitatea si siguranta produselor societatii, cat si pe promptitudinea, corectitudinea si competenta pentru servicii.
In domeniul protectiei mediului strategia S.C. CF Moldova S.A. este orientata spre aplicarea noilor tehnologii, care sa fie nepoluante si pe utilizarea materialelor de calitate, certificate si garantate, care sa asigure la standardele europene securitatea ecologica si sanitara a utilizatorilor produselor firmei. Firma promoveaza o politica de conservare a resurselor, de utilizare a mijloacelor si utilajelor performante, cu consumuri reduse de energie si combustibil, cu nivel de zgomot redus. Se are in vedere reciclarea celei mai mari parti a deseurilor rezultate, restul fiind transportate si depozitate in conditii sigure pentru mediu.
S.C. CF Moldova S.A. este furnizor feroviar autorizat de AFER Bucuresti si detine agremente tehnice feroviare pentru o gama larga de servicii feroviare.
Pentru permanenta preocupare de imbunatatire a rezultatelor si a calitatii lucrarilor, pentru politica de afaceri si orientarea spre TQM (Managementul Calitatii Totale), S.C. CF Moldova S.A. a obtinut in luna iulie 2002 la New York, la BID's International Quality Summit, Premiul pentru Excelenta si Prestigiu in Afaceri la categoria AUR.
concurenta
Competitorii principali sunt:
- S.C. CONSTRUCTII FEROVIARE S.A. IASI - pentru lucrari CF si drumuri;
- S.C. ALEX IASI - pentru lucrari constructii civile in municipiul Iasi;
- CCCF S.A. BUCURESTI - pentru lucrari de drumuri si cai ferate;
- COMINCO S.A. BUCURESTI - pentru lucrari de drumuri si alimentari cu apa;
-S.C. HIDROCONSTRUCTIA S.A. BUCURESTI - pentru lucrari hidrotehnice si edilitare.
1.2.2. Istoricul firmei
Societatea Comerciala Constructii Feroviare "Moldova" S.A. s-a infiintat in anul 1950 prin transformarea Serviciului Lucrari Speciale CFR Iasi in intreprinderea de Constructii si Transporturi Iasi, in scopul executarii lucrarilor aferente cailor ferate de comunicatii si telecomunicatii de pe intregul teritoriu al Moldovei.
S.C. CF Moldova S.A. este o unitate cu personalitate juridica, infiintata pe baza HG nr. 692/01.10.1991 prin desprinderea IRCM 1 Iasi din SNCFR Bucuresti.
Capitalul social al societatii, la data privatizarii in masa conform legii 55/1995 este de 23.923.494.000 lei, divizat intr-un numar de 23.923.494 actiuni valoarea nominala de 1000 lei. Proprietatea asupra capitalului este mixta: 60% proprietate privata si 40% proprietate de stat disponibila pentru privatizare.
1.2.3. Functiile intreprinderii si compartimentele care le realizeaza
In cadrul firmei S.C. CF Moldova S.A. se regasesc cele cinci functii de baza ale unei intreprinderi, respectiv: cercetare-dezvoltare, productie, comerciala, financiar-contabila, de personal. Multe dintre activitatile care se desfasoara in cadrul firmei sunt cuprinse in una sau mai multe functii, neputand exista o delimitare clara intre functii si activitati desfasurate.
Prin functia de cercetare-dezvoltare este asigurata asimilarea si introducerea noilor tehnologii, adaptarea tehnologiilor la specificul obiectului de activitate al firmei, astfel incat sa fie atinse obiectivele de calitate si productivitate ale unitatii. Obiectivele de baza ale acestei functii sunt:
optimizarea fluxurilor de fabricatie
imbunatatirea proceselor de munca, a activitatilor de intretinere, reparatii;
perfectionarea structurii organizatorice.
Aceasta functie este realizata in cadrul compartimentelor: Asigurarea Calitatii
(C3), Laborator Central (C12), C.T.C. (C5), Proiectare si Analiza (C14), ce urmaresc realizarea obiectivelor din domeniul producerii de noi idei si punerea lor in aplicatie cu scopul satisfacerii clientilor.
Functia de productie este realizata de compartimentul Productie (C4) si de Santiere. Aceasta functie grupeaza toate activitatile care asigura prestarea serviciilor/ fabricarea produselor ce constituie obiectul de activitate al firmei. Obiectivele functiei sunt:
asigurarea unei capacitati optime de productie:
utilizarea eficienta a resurselor intreprinderii;
obtinerea produselor de calitate;
satisfacerea clientilor prin oferirea de produse la timp si la costuri cat mai mici;
eliminarea rebuturilor si consumurilor fara justificare s.a.
Functia comerciala implica activitati complexe legate de aprovizionarea cu materii prime si materiale necesare procesului de productie, dar si pentru celelalte activitati desfasurate in cadrul unitatii, desfacerea produselor pe piata interna, cercetarea pietelor de desfacere si a concurentilor, activitatea de promovare, publicitate si reclama, participarea la targuri si expozitii.
Ca obiective pot fi enumerate:
asigurarea ritmicitatii in aprovizionarea cu materii prime si materiale;
cresterea segmentelor de piata;
onorarea la timp a comenzilor clientilor;
depistarea in timp util a noilor cerinte pe piata;
cresterea prestigiului firmei;
pastrarea unor bune relatii cu furnizorii si ceilalti parteneri de afaceri.
Functia comerciala este realizata prin urmatoarele departamente:
Aprovizionare (C7) care are urmatoarele atributii: fundamenteaza necesarul de aprovizionat in concordanta cu lucrarile prevazute in planul operativ, asigura si raspunde de aprovizionarea cu materiile prime si materialele necesare tuturor punctelor de lucru in vederea realizarii lucrarilor de constructii si urmareste aprovizionarea conform graficelor stabilite;
Marketing Tehnic (C2) desfasoara activitati al caror scop este de a asigura prestarea serviciilor in functie de nevoile consumatorilor, respectiv prospectarea pietelor, descoperirea de noi segmente de piata, sondarea opiniei consumatorilor, participarea la targuri, expozitii si licitatii;
Management Contracte (C9);
Comercial (C11);
Sefii de santier preiau o serie din atributiile celorlalte birouri la nivelul filialelor pe care le conduc. La acest nivel ei au o putere decizionala destul de mare, fara insa a avea responsabilitatea luarii deciziilor ce angajeaza firma din punct de vedere investitional.
Functia financiar-contabila asigura elaborarea bugetului de venituri si cheltuieli,
evidenta tranzactiilor economice, urmarirea modului de obtinere a rezultatelor financiare, inventarierea patrimoniului, stabilirea preturilor, calculul indicatorilor economico-financiari, utilizarea fondurilor, repartizarea pe destinatii a profitului, onorarea la plata a datorilor, urmarirea incasarii creantelor, elaborarea documentelor de sinteza, organizarea contabilitatii, a fluxului informational etc. Obiectivele principale ale acestei functii sunt:
cresterea profitabilitatii;
utilizarea eficienta a resurselor financiare ale firmei;
asigurarea capacitatii de plata a firmei;
cresterea patrimoniului.
Aceasta functie este realizata in cadrul compartimentului financiar-contabil
(C8) ce se ocupa cu urmatoarele activitati:
inregistreaza si tine evidenta elementelor patrimoniale ale firmei, efectueaza inventarierea periodica a acestora, intocmeste lunar balanta de verificare pentru conturile sintetice si cele analitice, urmarind concordanta dintre acestea etc;
realizeaza activitatile prin care se urmareste obtinerea si folosirea eficienta a resurselor financiare; inregistrarea, evidenta si urmarirea operatiunilor cu furnizorii etc;
realizarea incasarilor si platilor efectuate in numerar si asigurarea relatiilor de decontare cu bancile, intocmeste registrul de casa etc. (activitati realizate de caserie);
prelucrarea primara a datelor si obtinerea balantelor de verificare pentru activitatea desfasurata in cadrul fiecarei filiale (activitati realizate de economistii santierelor).
Functia de personal urmareste determinarea necesarului de forta de munca,
acoperirea locurilor de munca cu personal cu pregatire corespunzatoare posturilor, orientarea, selectia, angajarea si instruirea permanenta a personalului, stabilirea responsabilitatilor specifice fiecarui post (fisa posturilor), stabilirea modului de salarizare si cointeresare materiala, rezolvarea problemelor sociale ale salariatilor etc. Ca obiective, pot fi enumerate:
crearea unor conditii optime de munca pentru toti salariatii;
asigurarea unui nivel superior de pregatire a personalului prin cursuri de instruire;
stimularea fortei de munca prin sistemul de salarizare si cointeresare.
Functia de personal este realizata in cadrul compartimentului Personal, Instruire,
Actionariat
1.2.4. Organizarea firmei
S.C. CF Moldova S.A. este organizata ca o societate pe actiuni, condusa de Consiliul de Administratie, a carui componenta este hotarata de AGA si in subordinea caruia se afla directorul general. Impreuna formeaza nivelul 1 de conducere.
AGA este organul de conducere al societatii care decide asupra activitatii acesteia si asigura politica economica si comerciala. Principala sarcina pe linie financiar-contabila este aprobarea sau modificarea bilantului si a contului de profit si pierdere, si aprobarea repartizarii profitului.
Consiliul de Administratie este format dintr-un presedinte, 3 vicepresedinti si 5 membri alesi de AGA pe o perioada de 4 ani, cu posibilitatea realegerii. Presedintele Consiliului de Administratie este si directorul general al societatii. Dupa cum rezulta din organigrama, activitatea firmei este organizata in patru compartimente principale conduse de patru directori ce se afla pe nivelul 2 de conducere (director tehnic, director resurse, director economic si director adjunct) la care se mai adauga si urmatoarele compartimente (Control, Reglementari, Juridic-C15; Asigurarea Calitatii-C3; Management Contracte-C9 si Laborator Central-C12). In subordinea directorului tehnic se afla: departamentul Marketing Tehnic (C2), departamentul Productie (C4) si departamentul Proiectare si Analiza (14). In subordinea directorului resurse se afla: departamentul Personal, Instruire, Actionariat (C1), departamentul Aprovizionare (C7) si departamentul Mecanizare, Energetic, Metrologie (C6). In subordinea directorului economic se afla: departamentul Financiar-Contabil (C8) si departamentul Comercial (C11). In subordinea directorului adjunct se afla: departamentul C.T.C. (C5), departamentul Administrativ (C10) si departamentul Informatica, Comunicare (C13).
Departamentul informatic este subordonat directorului adjunct. Aici sunt desfasurate toate activitatile privind urmarirea sistemelor informationale din unitate si a echipamentelor corespunzatoare sistemului informatic existent.
Serviciul Administrativ are ca obiect desfasurarea activitatilor privind relatiile cu publicul, paza unitatii, gestionarea fondului de carte si reviste s.a.
Oficiul Juridic are rolul de a asigura legalitatea asupra tranzactiilor economice desfasurate in cadrul unitatii, apararea drepturilor firmei in caz de litigii, asigurarea fondului legislativ pe baza caruia se poate desfasura activitatea intreprinderii.
Prezentarea principalelor resurse informatice existente
In prezent, majoritatea componentelor sistemului informational sunt realizate
astfel incat sa se asigure atingerea obiectivului acestuia si, implicit, a firmei. Totusi, s-a constatat de catre departamentul informatic ca inca mai exista anumite deficiente, care, pentru a veni in ajutorul organelor decizionale, trebuie supuse unui proces de perfectionare, ceea ce a determinat initierea catorva noi proiecte de dezvoltare a sistemului informational financiar-contabil. Scopul este, in primul rand, de a asigura integrarea sistemelor existente si trecerea la sistemul de prelucrare distribuita a datelor, avand in vedere faptul ca informatiile existente la nivelul santierelor sunt prelucrate si transmise pe loturi, ceea ce duce la o intarziere in luarea deciziilor.
In plus, la solicitarea persoanelor care se ocupa de evidenta primara si evidenta contabila a clientilor si furnizorilor, se urmareste reproiectarea sistemului de gestiune a acestora , care sa ia in considerare noile cerinte ale utilizatorilor privind viteza de transmitere si prelucrare a datelor.
De asemenea, se urmareste realizarea unui nou sistem informational contabil in conditiile in care conducerea departamentului financiar-contabil doreste trecerea la descentralizarea evidentei pe santiere.
Sistemul informatic al firmei are in evidenta urmatoarele sisteme:
Nr.crt |
Denumire echipament |
Caracteristici tehnice |
Loc folosita |
Software de baza si aplicatii instalate |
Server WEB |
Pentium III, 600 Mhz, 512 MB RAM, 2 HDD de 10 GB, SCSI, CDROM |
1 departamentul informatica, comunicare (C13) |
WINDOWS 2000 Server Exchange 2000 |
|
Server Date |
Athlon 1.1 Ghz, 256 MB RAM, HDD DE 10 GB, SCSI, CDWriter |
1 departament informatica, comunicare (C13) |
Novell 5 |
|
Statii lucru |
Procesor K6-ZII 300-500 Mhz 64-128 MB RAM 4-20 GB HDD |
1 C1+C15 2 C3 2 C5+C9 1 C12 4 C2 1 C4 1 C7 1 C10 1 C13 6 C8 1 director general 1 director adjunct 1 director economic |
WINDOWS 98 sau WINDOWS XP OFFICE XP WORKS 2000 Visual FoxPro 7 Primavera Scop CONT-GEN Dev Plan Convertor |
|
Statii lucru santiere |
Procesor K6-ZII 300-500 Mhz 64-128 MB RAM 4-20 GB HDD |
4 santier 61 3 santier 62 2 santier 63 6 santier 64 3 santier 65 5 SUT |
WINDOWS 98 sau WINDOWS XP OFFICE XP WORKS 2000 Visual FoxPro 7 Primavera Scop CONT-GEN Dev Plan Convertor |
|
Imprimante cu jet |
LEXMARK Z32 LEXMARK 3200 HP 920 HP 610 HP 860 |
1 C13 1 C3 2 C5+C9 1 C12 1 C7 1 C4 2 santier 61 1 santier 62 | ||
Imprimante cu laser |
HP 5L HP 5P HP 100 HP 4M XEROX P8 |
2 C2 1 director general 1 director adjunct 1 santier 62 4 santier 64 1 director economic 1 santier 65 3 SUT | ||
Imprimante matriciale |
EPSON |
6 C8 |
Personalul departamentului Informatic este format din 2 analisti de sistem.
Marea majoritate a aplicatiilor din cadrul firmei au fost achizitionate de la firme de specialitate (S.C. INFOSTAR GROUP SRL, S.C. TOTAL SOFT S.A. BUCURESTI).
Aplicatiile din cadrul sistemului informatic al firmei S.C. CF Moldova S.A. sunt urmatoarele:
Aplicatia CONT-GEN - program ce ruleaza sub sistemul de operare MS-DOS, structurat pe urmatoarele module:
Contabilitate: jurnale contabile, operatiuni inchidere conturi venituri si cheltuieli, inchidere conturi TVA, rapoarte, inchideri de luna sau an
Incasari si plati: registru de casa; jurnal banca; compensari; evidente, efecte de platit si incasat; tablou fluxuri de trezorerie
Stocuri: intrari, iesiri, rapoarte
Mijloace fixe: intrari, transferuri, iesiri
Nomenclator pentru plan contabil, jurnale contabile, parteneri, articole de stoc, comenzi, gestiuni, liste de inventar pentru mijloace fixe, masini
Diverse: initializare program, intretinere
Aplicatia PRET DE COST - este utilizata in contabilitatea de gestiune si calculeaza profitul sau pierderea pe comenzi in concordanta cu consumul tehnic
Aplicatia pentru Salarii - este orientata pe problemele de salarizare asigurand prelucrarea pontajelor, calculul drepturilor salariale, evidenta concediilor de odihna si a altor drepturi ale personalului, inregistrarea diverselor retineri, intocmirea listelor de plata si a altor situatii, actualizarea datelor din baza de date privind salariatii, furnizarea de informatii privind personalul angajat
Aplicatia SCOP - pentru intocmirea devizelor oferta si a situatiilor de lucrari lunare (aplicatie facuta de S.C. TOTAL SOFT S.A. BUCURESTI). Program tehnic construit cu ajutorul bazelor de date.
Aplicatia PRIMAVERA - permite urmarirea si previziunea productiei cu ajutorul graficelor de executie. Datele necesare se preiau din aplicatia SCOP cu ajutorul programului DEV PLAN CONVERTOR.
Program de transmisie/receptie date - utilizat pentru transmisia si receptia datelor din teritoriu. Realizat de INFOSTAR GROUP. Este singurul program care nu este instalat in retea, santierele transmit datele prim mail.
In planul de dezvoltare a sistemului informatic sunt incluse:
achizitionarea aplicatiei CHARISMA (realizata de S.C. TOTAL SOFT S.A. Bucuresti). Aceasta impreuna cu aplicatia PRIMAVERA formeaza un sistem integrat
realizarea/cumpararea unei aplicatii care sa acopere intreg domeniul financiar-contabil
Factorii de influenta asupra realizarii proiectului
Aceste planuri de dezvoltare sunt influentate de lipsa unui personal calificat
in intreprindere, precum si lipsa resurselor financiare disponibile pentru achizitionarea unor aplicatii specializate.
INITIEREA SI PLANIFICAREA PROIECTULUI
2.1. Descrierea principalelor sisteme informationale existente
Sistemele informationale existente in unitate sunt: gestiunea stocurilor, gestiunea clientilor / furnizorilor, salarizare / personal, contabilitate generala si productia.
Gestiunea stocurilor
In cadrul intrarilor se retin urmatoarele date: cod articol, denumire articol, unitate de masura, stoc precedent, rulaj, stoc curent, pret de aprovizionare, pret vanzare.
La iesiri apar rapoarte /situatii si documente ca de exemplu: situatia stocurilor, lista furnizorilor, rapoarte privind modificari de preturi, situatia TVA colectat.
Salarizare / Personal - are ca scop inregistrarea datelor privind salariatii, identificarea potentialilor angajati, stabilirea modului de plata a drepturilor salariale.
Intrari:
date de identificare a fiecarui salariat (marca, nume, prenume, CNP, data angajarii, data nasterii, stare civila, nr. copii, adresa, vechime in munca, salariu de baza);
sporuri (spor vechime, conditii grele, spor de santier, conditii periculoase, conditii nocive, de conducere formatie);
retineri;
pontajul.
Iesiri:
state de salarii;
lista de avans;
lista retinerilor;
rapoarte statistice catre institutiile statului;
fisele fiscale I si II;
situatia ocuparii pe functii si meserii;
lista salariatilor ce au copii sub 14 ani.
Contabilitate generala - are ca scop centralizarea tuturor tranzactiilor financiar-contabile pentru a sintetiza si scoate in relief modificarile de active, obligatii si venitul net al firmei.
Intrari:
- preluarea in conturile din Cartea Mare a totalurilor din celelalte sisteme de gestiune.
Iesiri:
bilant;
cont de profit si pierdere;
lista panului de conturi(pe simboluri si nume);
situatia operatiunilor contabile ale perioadei pe conturi, sume, corectii efectuate;
situatia conturilor;
balanta de verificare;
situatii financiare comparative;
situatia veniturilor si cheltuielilor.
Productia - are ca scop asigurarea planificarii, realizarii si controlului productiei.
Intrari:
comanda primita;
stocurile existente;
normele tehnice de consum;
productia zilnica realizata.
Iesiri:
raportul de productie;
borderoul de vanzari;
rapoarte privind urmarirea productiei pentru determinarea coeficientului de acordare a salariilor.
Gestiunea clientilor/furnizorilor - are ca scopuri identificarea clientilor care solicita serviciile firmei si gestiunea vanzarilor acestora; identificarea furnizorilor care ofera produsele si serviciile necesare si gestiunea cumpararilor (evidenta facturilor sau ordinelor de plata, determinarea resurselor financiare disponibile).
Pentru clienti:
Intrari:
datele contractului( numar contract, data incheierii contactului);
date de identificare a clientilor( cod client, nume client, adresa, localitate, judet, cod postal, telefon , fax, cod fiscal, numar de inregistrare la Registrul Comertului, banca, cont);
date despre factura( numar factura, data factura, data scadentei, valoare factura);
modalitatea de plata (tip document, numar, data platii, valoare platita de client).
Iesiri:
balanta facturilor emise;
repartizarea solduri pe intervale de timp;
sold final parteneri;
sold final facturi;
lista clientilor dupa valoarea emisa;
lista clientilor dupa judete;
adrese clienti;
primii clienti( dupa valoare);
jurnal vanzari.
Pentru furnizori:
Intrari:
date privind comanda (numar comanda, data comenzii);
date privind furnizorii (cod furnizor, nume furnizor, adresa, telefon, fax, localitate, judet, cod postal, cod fiscal, numar inregistrare in Registrul Comertului, banca, cont);
date privind factura (numar factura, data factura, data scadenta, valoare factura, procent reduceri);
modalitate de plata (tip document, numar, data platii, valoare platita cre furnizor).
Iesiri:
repartizare solduri pe intervale de timp;
balanta facturi primite;
sold final facturi;
sold final parteneri;
jurnal cumparari.
2.2. Delimitarea ariei de intindere a sistemului de gestiune a clientilor / furnizorilor
2.2.1. Componentele organizatorice care au responsabilitati pe linie de gestiune a clientilor / furnizorilor
Directorul general
semneaza contractele economice
Directorul economic
asigura coordonarea raportarilor statistice si a evidentelor sintetice privind clientii si furnizorii;
semneaza contractele economice cu clientii si furnizorii;
semneaza deconturile privind TVA;
solicita scrisorile de garantie bancara de indeplinire a obligatiilor contractuale si de restituire a avansului (in cazul platilor in avans).
Departamentul Control, Reglementari, Juridic (C15)
avizeaza contractele comerciale;
rezolva litigiile pentru nerespectarea contractelor comerciale.
Departamentul Financiar - Contabil (C8)
inregistreaza situatiile de plata si facturile;
arhiveaza facturile si obtine lunar jurnalul de vanzari / cumparari;
evidenta modalitatilor de plata;
inregistreaza si contabilizeaza notele de receptie si constatare a diferentelor;
organizarea contabilitatii sintetice si analitice a patrimoniului;
inregistrare TVA;
verificarea intocmirii si circulatiei documentelor primare;
primirea documentelor pentru livrarile de la furnizori;
urmarirea platii furnizorilor;
calculul si evidenta TVA;
obtinerea rapoartelor specifice pentru clienti / furnizori.
Departamentul Marketing Tehnic (C2)
intocmeste devizul oferta;
intocmeste si semneaza contractele comerciale;
urmareste lunar situatiile de plata;
intocmeste procesul verbal de receptionare a lucrarilor.
Departamentul Management Contracte (C9)
intocmeste procesele verbale de compensare;
intocmeste cererea de restituire a garantiei de buna executie.
Departamentul Aprovizionare (C7)
primirea rapoartelor de necesitate de la santiere, departamentul Administrativ (C10) sau de la departamentul Mecanizare, Energetic, Metrologie (C6).
Santierele
intocmesc rapoartele de necesitate;
intocmesc situatiile de plata si borderoul de vanzari;
primirea facturilor de la client;
pastrarea unui exemplar din nota de receptie si constatare diferente.
2.2.2. Functiile sistemului de gestiune a clientilor / furnizorilor
Principalele clase de operatii economice, reflectate in sistem, sunt:
pentru clienti
estimarea costului lucrarii pe baza unui deviz oferta aprobat de client;
incheierea contractului economic intre client si prestator;
achitarea esalonata a lucrarii - se face pe baza borderoului de vanzari intocmit lunar de catre santierul prestator. Borderoul de vanzari include lucrarile executate in decursul unei luni pe baza caruia se intocmeste factura pentru client si se incaseaza contravaloarea ei;
receptionarea lucrarii pe baza procesului verbal de receptionare. In urma receptionarii clientul va elibera suma de bani aferenta garantiei de buna executie.
pentru furnizori
stabilirea necesarului de materiale. Se intocmeste pe baza raportului de necesitate.
incheierea contractului economic intre firma si prestator;
receptionarea comenzii pe baza facturii si intocmirea notelor de receptie si constatare a diferentelor;
plata furnizorului pe baza instrumentului de plata convenit.
Pe baza acestor operatii, la nivelul sistemului de gestiune a clientilor / furnizorilor
au fost identificate urmatoarele procese de prelucrare:
prelucrarea datelor privind clientii / furnizorii
In cazul clientilor acest proces cuprinde: devizul oferta, urmarirea realizarii contractului, situatia de plata si borderoul de vanzari aferent, intocmirea facturii.
In cazul furnizorilor acest proces cuprinde: intocmirea raportului de necesitate de catre departamentele interesate si trimiterea acestuia catre departamentul Aprovizionare care intocmeste o nota de comanda sau incheie un contract, receptionarea comenzii impreuna cu avizul de expeditie sau factura si intocmirea notei de receptie si constatare diferente.
evidenta tranzactiilor cu clientii / furnizorii - ce presupune inregistrarea facturii
clientului sau furnizorului
actualizarea datelor privind clientii / furnizorii (evidenta clientilor / furnizorilor,
inregistrarea sumelor de incasat sau de platit)
obtinerea rapoartelor
Descrierea sistemului informational existent
In urma studierii documentatiei firmei s-au obtinut informatii suplimentare privind
procesele de prelucrare care au loc in cadrul sistemului de gestiune clienti / furnizori, grupate in functie de tranzactii si transformari, astfel:
Evidenta clienti / furnizori - urmareste preluarea datelor privind clientii si furnizorii (date generale despre clientii / furnizorii, date despre facturi), obtinerea rapoartelor (jurnal vanzari / cumparari, balanta facturi, primii clienti dupa valoare, lista clientilor dupa judet, sold final facturi, adrese clienti).
Clienti (vanzari) - urmareste prelucrarea datelor privind prestarea serviciilor catre clienti. Se pleaca de la urmatoarele transformari:
estimarea costului lucrarii si incheierea contractului;
intocmirea situatiilor lunare;
incasarea esalonata (lunara).
Furnizori (cumparari) - urmareste prelucrarea datelor privind comenzile de aprovizionare sau contactele, plecand de la urmatoarele transformari:
stabilire necesar materiale;
lansare comanda;
receptionare comenzi;
plata comenzi.
Proces verbal de compensare - urmareste compensarile efectuate cu partenerii de afaceri.
A Gestiune clienti
I Clientul nu plateste avans
a) Descreierea documentelor primare
a.1 Devizul oferta
a.2 Contractul
a.3 Situatia de plata
a.4 Borderou vanzari (borderou productie)
a.5 Factura
a.6 Proces verbal de control a calitatii in faze determinate
a.7 Procesul verbal de receptionare a lucrarii
a.8 Cererea de restituire a garantiei de buna executie
a.1 Devizul oferta este un document premergator contractului ce se intocmeste de catre santierul specializat in tipul de lucrare cerut de beneficiar sau antreprenor si are ca scop estimarea cheltuielilor totale pentru lucrarea respectiva. Documentul se intocmeste intr-un exemplar si este semnat de seful santierului specializat si de client.
Devizul oferta, impreuna cu alte documente (in special legislatia) cerute prin proiectul transmis de beneficiar stau la baza ofertei de licitatie.
b.1 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Devizul oferta este trimis de la santier la departamentul marketing tehnic care il trimite la client pentru confirmare. In cazul in care clientul este de acord cu valorile din deviz, il semneaza si il trimite inapoi la departamentul marketing tehnic pentru a se putea intocmi contractul.
Intrucat valoarea lucrarilor realizate de firma este foarte mare (de ordinul miliardelor) si finalizarea lor necesita timp indelungat, acestea sunt esalonate pe luni, la sfarsitul fiecarei luni intocmindu-se cate o situatie de plata, un borderou respectiv o factura. De aceea exista o legatura de tipul 'unul-la-multe' intre deviz si documentele enumerate mai sus.
c.1 Descrierea listelor, situatiilor/altor iesiri din sistem
Fiind un document estimativ care face posibila contractarea sau nu a unei lucrari, devizul oferta nu genereaza iesiri directe din sistem. O "urmare" a acestui document poate fi considerat contractul.
a.2 Contractul de executie de lucrari este documentul care atesta incheierea unei intelegeri intre prestator si client. Clientul poate fi beneficiarul lucrarii sau antreprenorul, atunci cand lucrarea este luata in subantrepriza.
Indiferent daca contractul se face intre beneficiar si prestator sau intre antreprenor si prestator, acesta va fi semnat de directorii generali de la ambele firme, de directorii economici si de directorii tehnici.
Numarul exemplarelor in care se intocmeste contractul este de doua:
un exemplar ramane la client (beneficiar sau antreprenor)
un exemplar ramane la departamentul management contracte
b.2 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Pe baza devizului oferta semnat de client, departamentul management contracte intocmeste contractul. Acesta trebuie vizat si verificat de departamentul control, reglementare, juridic care, in cazul in care una dintre parti nu va respecta contractul, va solutiona problema in justitie.
Datele de pe contract (nr. contract, data contractului si datele privind clientul) sunt inregistrate de departamentul financiar si ar putea fi folosite pentru obtinerea unor informatii de tipul "Contractele incheiate cu clientul X in ultimii Y ani". Programul actual de gestiune al clientilor nu permite obtinerea unei astfel de informatii, care ar putea fi utila.(cerinta 1)
c.2 Descrierea listelor, situatiilor/altor iesiri din sistem
In momentul de fata programul existent nu permite interogarea bazei de date astfel incat sa se obtina informatii cumulate cu privire la situatia contractelor. Astfel de informatii se pot obtine doar manual.
a.3 Situatia de plata este un document lunar, analitic, intocmit in trei exemplare de catre santierul prestator al lucrarii. Acestea sunt semnate de catre constructor si de catre client. Cele trei exemplare au urmatorul circuit:
- un exemplar ramane in gestiunea santierului;
- un exemplar ramane la departamentul financiar-contabil si se ataseaza la exemplarul facturii ce ramane in gestiunea unitatii;
- un exemplar ajunge la client care il va pastra impreuna cu factura aferenta situatiei.
b.3 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Dupa intocmirea situatiei de plata, pe baza datelor primite in cursul lunii de la dirigintele de santier, si semnarea de catre constructor (inginerul de la santierul care realizeaza lucrarea), aceasta ajunge la client care o semneaza. Semnata de client, ajunge la departamentul financiar-contabil unde, pe baza ei, se va intocmi factura.
c.3 Descrierea listelor, situatiilor/altor iesiri din sistem
Datele din situatia de plata sunt folosite pentru actualizarea stocurilor deoarece reflecta cantitatea de materiale utilizate in decursul lunii considerate, precum si pentru stabilirea fondului maxim de salarii.
a.4 Borderoul vanzari (borderou productie) este un document lunar, intocmit in trei exemplare de santierul prestator al lucrarii si care se ataseaza situatiei de plata, redand datele din aceasta intr-o forma sintetica. Borderoul de vanzari poarta aceleasi semnaturi ca si situatia de plata pe care o insoteste.
b.4 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Fiind atasat situatiei de plata, borderoul are acelasi circuit cu aceasta. Se intocmeste separat deoarece totalurile, defalcate in situatie, pot fi mai usor vizualizate in borderou.
c.4 Descrierea listelor, situatiilor/altor iesiri din sistem
Fiind un document sintetizator, nu genereaza iesiri. Sumele care apar in borderou trebuie sa fie aceleasi cu totalurile din situatia de plata si din factura aferenta.
a.5 Factura este un document lunar intocmit in trei exemplare de catre departamentul financiar-contabil si semnat de catre cel ce o intocmeste:
-primul exemplar (albastru) se trimite clientului;
-al doilea exemplar (rosu) ramane la departamentul financiar-contabil;
-al treilea exemplar (verde) ramane in cotor.
Documentul care sta la baza intocmirii facturii este situatia de plata.
b.5 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Factura se intocmeste manual, datele de pe aceasta fiind apoi introduse in calculator. Aceste date sunt cele care stau la baza intocmirii tuturor rapoartelor, listelor, situatiilor catre conducerea unitatii sau catre stat.
c.5 Descrierea listelor, situatiilor/altor iesiri din sistem
Iesirile din sistem care au la baza datele de pe facturile catre clienti pot fi grupate in doua mari categorii: iesirile catre stat si iesirile catre conducerea unitatii.
Din categoria iesirilor catre stat fac parte:
jurnalul vanzarilor este un document ce se intocmeste lunar si care cuprinde urmatoarele date privind facturile intocmite in luna respectiva: data facturii, numele clientului, numarul facturii, valoarea cu TVA a facturii, valoarea fara TVA, valoarea TVA-ului facturat. Jurnalul vanzarilor se ataseaza dosarului in care se pastreaza facturile pe luna respectiva, prezentandu-se reprezentantilor Directiei Finantelor Publice in cazul unui control.
decontul privind TVA este tot un document lunar care cuprinde date privind TVA-ul de plata si TVA-ul de recuperat din luna considerata. Acest document se depune lunar la Directia Finantelor Publice.
Iesirile catre conducerea unitatii cuprind:
balanta facturi se intocmeste lunar si cuprinde datele de pe toate facturile intocmite in luna respectiva (nume client, numar factura, data facturii, valoarea cu TVA a facturii, data scadentei), dar si de pe cele primite de la furnizori. Este utila pentru managerii firmei (contabil-sef, director economic, director general) deoarece isi pot forma o imagine de ansamblu a tranzactiilor realizate de firma in luna respectiva.
sold final facturi clienti cuprinde soldurile finale ale facturilor intocmite intr-o luna catre clienti.
sold final parteneri se intocmeste un raport ce cuprinde fiecare partener (client sau furnizor) si soldul total al acestuia. Acest document se intocmeste lunar pentru conducerea firmei, dar, uneori se trimite cate un exemplar si bancilor unde firma isi are deschise conturile.
lista clientilor dupa valoarea emisa cuprinde o ordonare a tuturor clientilor dupa valoarea facturilor emise pana in acel moment si inca neachitate. De obicei se intocmeste lunar.
lista clientilor pe judete se intocmeste la cererea conducerii si este utila pentru formarea unei imagini privind repartizarea lucrarilor intreprinse pana in momentul respectiv (terminate sau nu) pe judete. Pe baza acestei liste se poate adopta o noua strategie de afaceri, se poate incerca cucerirea unor noi piete.
adrese clienti este un raport intocmit, de obicei, la sfarsit de an si semnat de directorul economic care se trimite fiecarui client in parte. Prin acest document clientii care mai au datorii neachitate catre firma sunt instiintati de valoarea acestora si de provenienta lor. Se intocmeste in doua exemplare, unul intorcandu-se,semnat de client, la departamentul financiar-contabil.
primii clienti este un raport care se intocmeste la cererea conducerii si care contine o lista cu primii cinci clienti, in ordinea valorii cumulate a contractelor intocmite cu acestia.
a.6 Procesul verbal de control a calitatii in faze determinate este un document intocmit in doua exemplare (unul pentru client si unul pentru santierul prestator) de catre o comisie formata din reprezentanti ai beneficiarului si specialisti in domeniu. Reprezentantii constructorului asista la intocmirea procesului verbal, fara a-l semna.
b.6 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Pe baza procesului verbal de control a calitatii in faze determinate se hotaraste daca lucrarea indeplineste conditiile necesare pentru a fi continuata.
c.6 Descrierea listelor, situatiilor/altor iesiri din sistem
Procesele verbale de control a calitatii nu genereaza iesiri din sistem. Pe baza lor se determina daca lucrarea va fi sau nu continuata.Ele au rolul de a concluziona starea calitativa a lucrarii.
a.7 Procesul verbal de receptionare a lucrarii este un document care se intocmeste dupa terminarea lucrarii, la predarea acesteia beneficiarului. Este intocmit in doua exemplare (unul pentru santier si unul pentru client) si este semnat de o comisie de receptie care are menirea sa constate daca lucrarea a fost realizata corect. Comisia se intruneste pe aceleasi principii ca si cea pentru intocmirea proceselor verbale de control a calitatii.
b.7 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Procesul verbal de receptionare a lucrarii are rolul de a constata calitatea lucrarii la terminarea acesteia. Daca lucrarea aflata in perioada de garantie nu corespunde cerintelor, atunci constructorul are obligatia de a remedia neajunsurile.
c.7 Descrierea listelor, situatiilor/altor iesiri din sistem
Pe baza procesului verbal de receptionare a lucrarii, dupa trecerea perioadei de garantie, se va intocmi cererea de restituire a garantiei de buna executie, firma intrand in posesia sumei de bani aferente garantiei.
a.8 Cererea de restituire a garantiei de buna executie este un document intocmit de departamentul management contracte si semnat de directorul economic si de cel general care se trimite clientului, dupa trecerea perioadei de garantie.
b.8 Descrierea fluxurilor informationale si a procedurilor de prelucrare
In momentul executiei unei lucrari, beneficiarul plateste prestatorului doar o parte din bani (70%), restul urmand a fi platit la expirarea garantiei de buna executie pe baza cererii de restituire a acesteia. In baza acestei cereri, beneficiarul lucrarii va debloca suma restanta, varsand-o in contul firmei.
c.8 Descrierea listelor, situatiilor/altor iesiri din sistem
Cererea de restituire a garantiei bancare nu genereaza iesiri. Efectul ei este acela de a permite constructorului sa beneficieze de "restanta" de 30% din valoarea contractului.
II Clientul plateste avans
a) Descreierea documentelor primare
a.1 Devizul oferta
a.2 Contractul
a.3 Situatia de plata
a.4 Borderou vanzari (borderou productie)
a.5 Factura
a.6 Proces verbal de control a calitatii in faze determinate
a.7 Procesul verbal de receptionare a lucrarii
a.8 Cererea de restituire a garantiei de buna executie
a.9 Scrisori de garantie bancara:
- o scrisoare de indeplinire a obligatiilor contractuale
- o scrisoare de restituire a avansului
a.9 Atunci cand clientul plateste un avans, pe langa documentele care se intocmesc in mod normal (cele de la punctele a.1-a.8), firma solicita bancii cu care lucreaza si doua scrisori de garantie: una de indeplinire a obligatiilor contractuale si una de restituire a avansului achitat de client. Fiecare dintre aceste scrisori se intocmeste intr-un exemplar semnat de directorul bancii. Aceste scrisori vor fi transmise, apoi, clientului care, in cazul cand firma nu-si respecta intelegerea contractuala, pe baza lor si a contractului incheiat in prealabil, va cere inapoierea avansului si tragerea la raspundere a constructorului.
b.9 Descrierea fluxurilor informationale si a procedurilor de prelucrare
In cazul celor doua scrisori, constructorul nu este decat un intermediar intre banca si client. De aceea aceste documente nu parcurg un flux informational si nici nu necesita proceduri de prelucrare.
c.9 Descrierea listelor, situatiilor/altor iesiri din sistem
Neintrand intr-un flux informational, scrisorile de garantie nu pot genera iesiri. Urmarirea lor se poate face indirect, prin documentele pe care firma le primeste de la banca sau prin documentele ce atesta plata in avans.
B Gestiune furnizori
I Furnizori de materiale si de servicii
a) Descreierea documentelor primare
a.1 Raport de necesitate (referat)
a.2 Comanda (nota de comanda)
a.3 Factura si avizul de expeditie a marfurilor
a.4 Nota de receptie si constatare diferente
a.1 Raportul de necesitate (referat) este un document care se intocmeste intr-un exemplar de catre departamente sau santiere atunci cand este nevoie de un obect de inventar, de materii prime, de mijloace fixe etc. Acest document este semnat de cel care il intocmeste si trimis departamentului de aprovizionare.
b.1 Descrierea fluxurilor informationale si a procedurilor de prelucrare
In momentul in care raportul de necesitate (referat) ajunge la departamentul de aprovizionare, se va verifica la depozit daca cererea poate fi acoperita din stoc. In acest caz cererea va fi satisfacuta imediat, din stocul existent; daca nu poate fi acoperita se va face o comanda catre furnizor (cand se lucreaza cu un anumit partener) sau departamentul aprovizionare va studia ofertele posibililor furnizori si o va alege pe cea mai avantajoasa.
Aceste referate se indosariaza si se pastreaza de catre departamentul aprovizionare.
c.1 Descrierea listelor, situatiilor/altor iesiri din sistem
Ca o iesire generata de prelucrarea rapoartelor de necesitate poate fi considerata comanda care se face catre furnizor in cazul in care cererea nu poate fi acoperita din stoc.
a.2 Comanda (nota de comanda) este un document intocmit intr-un exemplar de catre departamentul de marketing tehnic. Se semneaza de catre directorul economic si de cel general. Pe baza acesteia furnizorul va trimite produsele de care firma are nevoie.
b.2 Descrierea fluxurilor informationale si a procedurilor de prelucrare
In urma primirii rapoartelor de necesitate de catre departamentul aprovizionare, acesta trimite datele departamentului marketing tehnic care intocmeste comanda si o trimite furnizorului.
In cazul comenzilor se retin datele furnizorului (nume, adresa, cod fiscal, banca si contul bancar, persoana de contact etc.) si datele comenzii (numarul acesteia, data, produsele solicitate).
c.2 Descrierea listelor, situatiilor/altor iesiri din sistem
La fel ca si in ce priveste contractul intocmit cu un client sau cel cu un furnizor nu se pot obtine rapoarte. (cerinta 2)
a.3 Factura si avizul de expeditie a marfurilor sunt documente care se primesc de la furnizor o data cu primirea produselor comandate. In mod normal, avizul de insotire a marfurilor se trimite atunci cand factura va fi primita de client dupa sosirea marfurilor, dar sunt furnizori care trimit clientului la livrarea marfurilor si factura si avizul de expeditie.
Diferenta dintre factura si avizul de expeditie este data de faptul ca factura este cea care se inregistreaza in contabilitate, reprezentand dovada transferului marfurilor intre furnizor si client, in timp ce avizul de insotire este utilizat si in cadrul aceleasi unitati cand se face transferul de marfuri dintr-o gestiune in alta.
In cazul ambelor documente, acestea se intocmesc in trei exemplare:
-exemplarul albastru ajunge la departamentul financiar contabil al clientului
-exemplarele rosu si verde raman in contabilitatea furnizorului: cel rosu in dosarele contabile, cel verde la cotor.
Ambele documente sunt semnate de cel care le intocmeste (reprezentantul furnizorului) si de cel care le primeste (persoana de la departamentul financiar-contabil care se ocupa de facturi).
Pe baza sumelor din factura se va face plata furnizorului prin una din modalitatile cunoscute (OP, BO, cec, chitanta, bon fiscal).
b.3 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Dupa primirea facturii, datele de pe aceasta sunt introduse in calculator. Aceste date sunt cele care stau la baza intocmirii tuturor rapoartelor, listelor, situatiilor catre conducerea unitatii sau catre stat.
Procedurile de prelucrare si iesirile generate cuprind atat facturile primite de la furnizorii de materiale si servicii, cat si cele de la subantreprenori.
c.3 Descrierea listelor, situatiilor/altor iesiri din sistem
Iesirile din sistem care au la baza datele de pe facturile de la furnizori pot fi grupate in doua mari categorii: iesirile catre stat si iesirile catre conducerea unitatii.
Din categoria iesirilor catre stat fac parte:
jurnalul cumpararilor este un document ce se intocmeste lunar si care cuprinde urmatoarele date privind facturile intocmite in luna respectiva: data facturii, numele furnizorului, numarul facturii, valoarea cu TVA a facturii, valoarea fara TVA, valoarea TVA-ului facturat. Jurnalul cumpararilor se ataseaza dosarului in care se pastreaza facturile pe luna respectiva, prezentandu-se reprezentantilor Directiei Finantelor Publice in cazul unui control.
decontul privind TVA este tot un document lunar care cuprinde date privind TVA-ul de plata si TVA-ul de recuperat din luna considerata. Acest document se depune lunar la Directia Finantelor Publice.
Iesirile catre conducerea unitatii cuprind:
balanta facturi se intocmeste lunar si cuprinde datele de pe toate facturile primite in luna respectiva (nume furnizor, numar factura, data facturii, valoarea cu TVA a facturii, data scadentei), dar si de pe cele trimise clientilor. Este utila pentru managerii firmei (contabil-sef, director economic, director general) deoarece isi pot forma o imagine de ansamblu a tranzactiilor realizate de firma in luna respectiva.
sold final facturi furnizori cuprinde soldurile finale ale facturilor primite intr-o luna de la furnizori.
sold final parteneri se intocmeste un raport ce cuprinde fiecare partener (client sau furnizor) si soldul total al acestuia. Acest document se intocmeste lunar pentru conducerea firmei, dar, uneori se trimite cate un exemplar si bancilor unde firma isi are deschise conturile.
a.4 Nota de receptie si constatare diferente este intocmita de departamentul financiar contabil si semnata de membrii comisiei de receptie si de gestionar la receptia materialelor primite pe baza documentului de insotire a transportului. Documentul insotitor poate fi factura sau/si avizul de insotire a marfurilor.
NRCD-ul este intocmit in doua exemplare:
-unul ramane la gestionar
-unul ajunge la departamentul financiar contabil.
Pana acum nu s-au intalnit cazuri de constatare de diferente la receptia marfurilor, dar in acest caz se ia legatura cu furnizorul si se ajunge la o intelegere.
b.4 Descrierea fluxurilor informationale si a procedurilor de prelucrare
In cazul primirii marfurilor insotite de avizul de insotire a marfurilor, se intocmeste NRCD-ul pe baza acestuia, la sosirea facturii verificandu-se exactitatea acesteia.
Spre deosebire de alte firme, legatura intre NRCD si factura este de "unu-la-unu" in sensul ca fiecarei facturi ii corespunde un NRCD.
c.4 Descrierea listelor, situatiilor/altor iesiri din sistem
NRCD-urile nu genereaza iesiri din sistem. Ele sunt utilizate doar pentru a consemna eventualele diferente la receptionarea marfurilor.
II Furnizori subantreprenori
a) Descreierea documentelor primare
a.1 Contract de executie a lucrarii
a.2 Situatie de plata si borderou vanzari
a.3 Factura
a.4 Proces verbal de control a calitatii in faze determinate
a.1 Contractul este un document asemanator cu cel de la gestiunea clientilor, diferenta constand in faptul ca, de aceasta data, SC CF "MOLDOVA" SA este clientul.
Contractul se intocmeste in doua exemplare de catre firma subantreprenoare sau furnizorul de servicii:
-un exemplar ramane la furnizor
-un exemplar va fi pastrat de departamentul management contracte.
Cele doua exemplare vor fi semnate de directorii generali de la ambele firme, de directorii economici si de directorii tehnici.
b.1 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Datele de pe contract (nr. contract, data contractului si datele privind furnizorul) sunt inregistrate de departamentul financiar si ar putea fi folosite pentru obtinerea unor informatii de tipul "Contractele incheiate cu furnizorul X in ultimii Y ani". Programul actual de gestiune al furnizorilor nu permite obtinerea unei astfel de informatii, care ar putea fi utila.(cerinta 3)
c.1 Descrierea listelor, situatiilor/altor iesiri din sistem
Cum am mai mentionat, in momentul de fata programul existent nu permite interogarea bazei de date astfel incat sa se obtina informatii cumulate cu privire la situatia contractelor. Astfel de informatii se pot obtine doar manual.
a.2 Situatia de plata si borderoul de vanzari se primeste de la subantreprenor la fiecare sfarsit de luna (semnata de biroul tehnic) si este semnata de catre responsabilul cu lucrarea din cadrul santierului specializat.
Numarul de exemplare primite este de doua: unul ramane la santier, iar al doilea ajunge la departamentul de marketing tehnic.
b.2 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Pe baza situatiilor de plata si borderourilor de vanzari primite in fiecare luna de la subantreprenori precum si a datelor privind lucrarile intocmite de firma ca antreprenor, aceasta va intocmi situatia de plata si borderoul pentru beneficiarul lucrarii.
c.2 Descrierea listelor, situatiilor/altor iesiri din sistem
Datele din situatia de plata si borderoul vanzarilor impreuna cu factura primita de la furnizor sunt folosite pentru calcularea veniturilor si cheltuielilor lunare si totale privind lucrarea considerata.
a.3 Factura primita de la subantreprenor este tratata in acelasi mod cu cele primite de la furnizorii de materiale si servicii (sufera aceleasi procese de prelucrare si genereaza aceleasi rapoarte)
a.4 Procesul verbal de control a calitatii in faze determinate este un document intocmit in doua exemplare (unul pentru furnizor si unul pentru antreprenor) de catre o comisie formata din reprezentanti ai antreprenorului si specialisti in domeniu. Reprezentantii furnizorului asista la intocmirea procesului verbal, fara a-l semna.
b.4 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Pe baza procesului verbal de control a calitatii in faze determinate antreprenorul hotaraste daca lucrarea indeplineste conditiile necesare pentru a fi continuata.
c.4 Descrierea listelor, situatiilor/altor iesiri din sistem
Procesele verbale de control a calitatii nu genereaza iesiri din sistem nici la furnizor si nici la antreprenor. Pe baza lor se determina daca lucrarea va fi sau nu continuata.Ele au rolul de a concluziona starea calitativa a lucrarii.
C Compensarea
a) Descreierea documentelor primare
a.1 Procesul verbal de compensare si ordinul de compensare
a.1 Procesul verbal de compensare si ordinul de compensare se intocmesc in doua exemplare:
-un exemplar ramane la initiator (departamentul management contracte daca initiatorul este SC CF "MOLDOVA" SA, un client daca acesta initiaza procedura sau un furnizor )
-un exemplar merge la destinatar.
Din partea destinatarului si initiatorului semneaza directorii economici.
b.1 Descrierea fluxurilor informationale si a procedurilor de prelucrare
Pe baza compensarilor are loc stingerea unor datorii intre doua firme (fara implicarea bancii) atunci cand acestea au de efectuat plati una fata de alta, dar se poate face o compensare si printr-o terta firma, mentionandu-se in procesul verbal care este aceasta.
Cel mai important in cazul unei compensari este ca toate firmele implicate sa fie de acord cu acest procedeu.
Inregistrarea sumelor compensate si a celor implicati este importanta deoarece se modifica valoarea creantelor sau datoriilor.
c.1 Descrierea listelor, situatiilor/altor iesiri din sistem
Sistemul actual nu permite obtinerea unor iesiri de genul "Lista clientilor/furnizorilor cu care s-au facut compensari in luna." sau "Valoarea compensarilor pe luna".(cerinta 4)
4.Modelarea sistemului informational existent
4.1. Modelul descompunerii functionale
Descompunerea functionalǎ a sistemului analizat se realizeazǎ cu ajutorul diagramei descompunerii functionale, care urmǎreste scoaterea in evidentǎ a modului de structurare a sistemului, prin prezentarea ierarhiei sistemului, descompus in procese de prelucrare si subprocese.
Sistemul de gestiune clienti / furnizori se descompune in urmǎtoarele procese si subprocese:
evidentǎ clienti/furnizori, cu urmǎtoarele subprocese:
actualizare clienti/furnizori;
obtinere rapoarte;
clienti, cu urmǎtoarele subprocese:
preluare contracte;
raporatre lunarǎ;
plat
furnizori, care contine subprocesele:
aprovizionare;
contracte;
proces verbal de compensare.
Diagrama descompunerii functionale este prezentatǎ in Anexa 1.
4.2. Modelul proceselor
Modelarea proceselor se realizeazǎ cu ajutorul diagramelor de date, care redau sub formǎ graficǎ modul in care fluxurile de date intrǎ in procesele de prelucrare din diferite surse si iesirea fluxurilor de date cǎtre diferite destinatii.
Prima diagrama care se obtine este diagrama de context (Anexa 2), care contine un singur simbol pentru procesul de prelucrare, respectiv sistemul de gestiune clienti/furnizori, precum si sursele/destinatiile principalelor fluxuri de date, fara a se prezenta locurile de stocare a datelor.
Urmeaza diagrama de nivel 0 (Anexa 3), care prezinta principalele procese de prelucrare ale sistemului.
Modelarea proceselor continua cu descompunerea proceselor de prelucrare in subprocese, redata prin intermediul DFD-urilor de nivel 1 (Anexa 4).
4.3. Dictionarul de date
1. PVC-furniz cuprinde urmatoarele date:
* data incheierii procesului verbal
* numele furnizorului
* numele cumparatorului (SC CF MOLDOVA SA)
* suma de bani compensata
* numele tertului (daca exista)
* ordinul de compensare
NOTE:
Porneste din partea furnizorului.
Ordinul de compensare, numerotat, este semnat si stampilat de reprezentantii celor doua firme (initiatorul si destinatarul).
Compensarile se fac ori de cate ori apare o astfel de intelegere intre parti.
Pe spatele ordinului de compensare se trec elementele de identificare ale facturilor ce fac obiectul compensarii.
2. PVC cuprinde urmatoarele date:
* data incheierii procesului verbal
* numele furnizorului
* numele cumparatorului (SC CF MOLDOVA SA)
* suma de bani compensata
* numele tertului (daca exista)
* ordinul de compensare
NOTE:
Porneste din partea cumparatorului, respectiv SC CF MOLDOVA SA.
Toate celelalte note raman valabile.
3. Comanda-furnizor cuprinde:
* numar comanda
* data comenzii
* denumirea produselor comandate
* cantitatea din fiecare produs
* unitatea de masura
* termenul de livrare
* numele si adresa furnizorului
* numele si adresa cumparatorului
* adresa unde se doreste a se primi marfa
NOTE:
Se intocmeste de fiecare data cand este nevoie de materii prime, materiale, obiecte de inventar etc. ce nu se gasesc in stoc.
4. Date-insotire-materiale reprezinta avizul de insotire a marfii:
* numarul avizului
* data
* datele furnizorului
* datele cumparatorului
* denumirea produselor livrate
* unitatea de masura
* cantitatea
* pretul unitar fara TVA
* valoarea
* valoarea totala
* datele delegatului si ale mijlocului de transport
NOTE:
Avizul de insotire a marfii se primeste o data cu primirea produselor comandate si nu se inregistreaza in contabilitate.
5. Contract-furniz-semnat cuprinde:
* numar contract
* data contractului
* numele si datele furnizorului
* numele clientului (SC CF MOLDOVA SA)
NOTE:
Contractul se intocmeste pe baza devizului oferta realizat de furnizorul subantreprenor si aprobat de antreprenor (SC CF MOLDOVA SA) inainte de inceperea unei lucrari.
6. Plata-furniz cuprinde urmatoarele date:
* tipul documentului
* numarul documentului
* data documentului
* valoarea ramasa
NOTE:
Plata furnizorului se face in functie de intelegerea existenta intre furnizor si client.
Valoarea ramasa se calculeaza ca valoarea datoriei minus valoarea platita pana in acel moment minus valoarea documentului de plata.
Daca exista penalizari, acestea se calculeaza ca procent din suma restanta.
7. Rapoarte-de-necesitate:
* numele angajatului ce face cererea
* functia acestuia
* denumirea produselor
* cantitatea dorita
* eventual valoarea produselor
* data
NOTE:
Se intocmesc de fiecare angajat sau departament in parte in momentul in care este nevoie de un produs (mijloace fixe, obiecte de inventar etc.).
Campul valoare nu este obligatoriu de completat.
8. Scrisori-de-garantie-bancara cuprind cele doua tipuri de scrisori emise de banca:
* scrisoare de indeplinire a obligatiilor contractuale
* scrisoare de restituire a avansului
NOTE:
Cele doua scrisori se primesc de la banca in momentul in care exista un client care plateste un avans.
9. Rapoarte cuprinde urmatoarele tipuri de rapoarte:
* balanta facturi
* sold final facturi clienti
* sold final parteneri
* lista clientilor dupa valoarea emisa
* lista clientilor pe judete
* adrese clienti
* primii clienti
* sold final facturi furnizori
NOTE:
Fiecare dintre aceste rapoarte se intocmeste lunar si cuprinde urmatoarele date:
datele clientului/furnizorului
numarul si data facturilor din luna respectiva
valoarea pe fiecare factura
valoarea cumulata a facturilor pe luna considerata
data intocmirii raportului
10. Factura-furnizor-NRCD cuprinde:
- datele de pe factura:
* date furnizor (denumire, cod fiscal, sediul, numar registrul comertului, banca, contul bancar)
* numar factura
* data facturii
* denumirea produselor sau serviciilor facturate
* unitatea de masura
* cantitatea
* pretul unitar fara TVA
* valoarea fara TVA
* valoare TVA
* valoarea totala a facturii
* valoarea totala a TVA-ului
* total de plata
* datele delegatului si ale mijlocului de transport
- datele de pe NRCD
* numele unitatii
* numar NRCD
* cod furnizor
* numar factura corespunzatoare
* denumirea produsului
* cod produs
* unitate de masura
* cantitate receptionata
* cantitate factura
* pret unitar
* diferente constatate
NOTE:
NRCD-ul se face dupa inregistrarea facturii in contabilitate.
Se verifica valoarea totala a facturii si valoarea totala a TVA-ului, eventualele greseli fiind aduse la cunostinta furnizorului.
Diferente constatate se calculeaza astfel: din cantitate factura se scade cantitate receptionata.
11. Jurnal-vanz-cump cuprinde:
- jurnal vanzari/ jurnal cumparari:
* luna si anul
* data facturilor emise/primite
* numarul facturilor emise/primite
* numele cumparatorilor/vanzatorilor
* codul fiscal
* total factura
* baza impozitare
* val TVA
-decontul privind TVA
* luna si anul
* codul fiscal
* denumirea si adresa firmei
* valoarea diferitelor tipuri de TVA
* total TVA colectata
* total TVA deductibila
* valoare TVA de plata/ de recuperat
* numele si functia celui ce l-a intocmit
NOTE:
Toate documentele incluse in jurnal-vanz-cump se intocmesc lunar.
Datele se obtin din facturile emise in luna respectiva.
12. Date-facturi-platite-furnizori-clienti
* numar factura
* data facturii
* valoarea facturii
* valoarea platita/incasata
* valoare ramasa
* valoare platita/incasata
* datele documentului ce sta la baza platii/incasarii
NOTE:
Aceste date se completeaza de fiecare data cand are loc o plata sau o incasare.
Campul valoare ramasa se calculeaza ca diferenta intre valoarea facturii si valoarea platita/incasata.
13. Situatie-de-plata-si-borderou-vanzari cuprinde urmatoarele date:
* numele executantului
* numele beneficiarului
* denumirea lucrarii
* luna si anul
* valoarea fara TVA
* valoare TVA
* valoarea cu TVA
NOTE:
Documentele se realizeaza la sfarsitul fiecarei luni.
Valoarea cu TVA se poate calcula ca suma intre valoarea fara TVA si valoare TVA.
14. PVC-de-la-client cuprinde:
* data incheierii procesului verbal
* numele clientului
* numele furnizorului (SC CF MOLDOVA SA)
* suma de bani compensata
* numele tertului (daca exista)
* ordinul de compensare
NOTE:
Porneste din partea clientului.
Ordinul de compensare, numerotat, este semnat si stampilat de reprezentantii celor doua firme (initiatorul si destinatarul).
Compensarile se fac ori de cate ori apare o astfel de intelegere intre parti.
Pe spatele ordinului de compensare se trec elementele de identificare ale facturilor ce fac obiectul compensarii.
15. PVC-client:
* data incheierii procesului verbal
* numele clientului
* numele furnizorului (SC CF MOLDOVA SA)
* suma de bani compensata
* numele tertului (daca exista)
* ordinul de compensare
NOTE:
Porneste din partea furnizorului, respectiv SC CF MOLDOVA SA.
Toate celelalte note de la celelalte tipuri de PVC raman valabile.
16. Scrisori-garantie-bancara:
* scrisoare de indeplinire a obligatiilor contractuale
* scrisoare de restituire a avansului
NOTE:
Cele doua scrisori se primesc de la banca si se trimit clientului care plateste un avans.
17. Contract-client cuprinde urmatoarele date:
* numar contract
* data contractului
* numele si datele clientului
* numele furnizorului (SC CF MOLDOVA SA)
NOTE:
Contractul se intocmeste pe baza devizului oferta realizat de santier si aprobat de client inainte de inceperea unei lucrari.
18. Situatie-de-plata cuprinde urmatoarele date:
* numele executantului
* numele beneficiarului
* denumirea lucrarii
* luna si anul
* valoarea fara TVA
* valoare TVA
* valoarea cu TVA
* serviciile prestate in luna considerata
NOTE:
Situatia de plata se intocmeste lunar si este semnata de catre beneficiarul lucrarii.
Valoarea cu TVA se calculeaza ca suma intre valoarea fara TVA si valoarea TVA.
19. Factura-client cuprinde:
* date client (denumire, cod fiscal, sediul, numar registrul comertului, banca, contul bancar)
* numar factura
* data facturii
* denumirea produselor sau serviciilor facturate
* unitatea de masura
* cantitatea
* pretul unitar fara TVA
* valoarea fara TVA
* valoare TVA
* valoarea totala a facturii
* valoarea totala a TVA-ului
* total de incasat
NOTE:
Factura se intocmeste lunar pe baza situatiei de plata si a borderoului de vanzari.
Valoarea fara TVA se calculeaza ca produs intre cantitate, pret unitar fara TVA.
Valoare TVA se obtine inmultind valoarea fara TVA cu procent TVA.
Valoarea totala a facturii se obtine insumand toate valorile fara TVA.
Valoarea totala a TVA-ului se obtine insumand toate valorile TVA-ului.
Totalul de incasat este suma dintre valoarea totala a facturii si valoarea totala a TVA-ului.
20. Plata-client
* tipul documentului
* numarul documentului
* data documentului
* valoarea ramasa
NOTE:
Incasarea de la client se face lunar.
Valoarea ramasa se calculeaza ca valoarea datoriei minus valoarea platita pana in acel moment minus valoarea documentului de plata.
Daca exista penalizari, acestea se calculeaza ca procent din suma restanta.
21. PV-receptie-lucrare cuprinde:
* data
* numarul procesului verbal
* numele clientului
* numele executantului
* denumirea lucrarii
* numar exemplare
NOTE:
Se intocmeste la terminarea unei lucrari.
5. Determinarea cerintelor informationale pentru noul sistem
5.1. Cerintele functionale ale noului sistem
Datele despre noul sistem se pot obtine din surse externe sau interne. Cea mai importanta sursa interna o constituie angajatii care stiu cum functioneaza actualul sistem si de ce informatii mai au nevoie pentru atingerea obiectivelor. Sursele de date externe sunt companiile care au sisteme asemanatoare, clientii, etc.
Mentionam patru metode pentru a obtine date despre sistemul existent:
interviurile;
chestionarele;
observarea directa;
culegerea de documente.
Intrebari posibile pentru un interviu:
Ce forma de evidenta a clientilor/furnizorilor utilizeaza firma dumneavoastra?
Ce documente se folosesc pentru contabilizarea (evidenta) clientilor/furnizorilor?
Ce metode de compensare se folosesc in cadrul unitatii?
Tehnica chestionarelor:
Pentru evidenta clientilor/furnizorilor se face apel la calculator? (DA sau NU)
Cum considerati rolul indeplinit de calculator in domeniul evidentei clientilor/furnizorilor?
Ce fel de calculatoare se folosesc?
Calculatoarele sunt legate in retea?
Programele care ruleaza pe calculatoare sunt achizitionate sau realizate cu eforturi proprii?
Cat de des verificati securitatea fisierelor? (zilnic, saptamanal, lunar, ocazional)
Din prezentarea anterioara (cap.3) se constata urmatoarele deficiente, care constituie in acelasi timp cerinte functionale ale noii aplicatii:
Problema obtinerii informatiilor legate de clientii cu care s-au incheiat contracte. Programul actual de gestiune a clientilor nu permite obtinerea informatiilor legate de contractele incheiate cu clientul X in ultimii Y ani.
Problema obtinerii rapoartelor privind datele despre contracte. La fel ca si in ceea ce priveste contractul intocmit cu un client sau cu un furnizor nu se pot obtine rapoarte. Solutia consta in realizarea unui modul de program care sa permita interogarea bazei de date pentru obtinerea informatiilor privind contractele intocmite cu furnizorii si clientii firmei.
Problema obtinerii informatiilor legate de furnizorii cu care s-au incheiat contracte. Contractele incheiate cu furnizorul X in ultimii Y ani.
Problema obtierii rapoartelor legate de compensari. Sistemul actual nu permite obtinerea unor iesiri de genul: Lista clientilor/furnizorilor cu care s-au facut compensari pe luna sau Valoarea compensarilor pe luna
5.2. Cerintele nefunctionale ale sistemului
1. Realizarea de interfete specifice mediilor de programe vizuale.
2. Asigurarea securitatii datelor prin stabilirea de niveluri de acces pentru diferite categorii de utilizatori.
II PROIECTAREA SISTEMULUI
Modelarea datelor
SGCF trebuie sa reflecte urmatoarele clase de tranzactii:
Introducerea unui client/furnizor nou presupune inregistrarea tuturor datelor generale despre clientul/furnizorul respectiv: denumirea, codul fiscal, adresa, localitatea, judetul, prefixul telefonic si numarul de telefon, denumirea bancii si numarul contului precum si tipul sau (client, furnizor, client si furnizor).
Incheierea unui contract/a unei comenzi presupune inregistrarea contractului (cu clientul sau furnizorul, dupa caz) sau trimiterea unei comenzi catre furnizor. Despre client/furnizor se retin datele de identificare ale acestuia (denumirea, adresa, cod fiscal, banca si contul bancar etc), iar despre contract se inregistreaza data intocmirii acestuia, denumirea lucrarii si data cand aceasta trebuie predata precum si tipul contractului (contract cu un client sau cu un furnizor). In cazul unei comenzi, pe langa datele generale, se retin si produsele comandate.
Intocmirea si trimiterea facturii catre client se face lunar pe baza borderoului de vanzari si a situatiei de plata. In borderoul de vanzari se inregistreaza suma totala (cu TVA, fara TVA si total TVA) a cheltuielilor cu realizarea lucrarii din luna care s-a terminat (aceste date se scriu si pe factura), in timp ce pe situatia de plata se inregistreaza analitic toate cheltuielile, pe grupe si tipuri.
Primirea unei facturi de la un furnizor presupune inregistrarea datelor generale despre factura (numar, data, datele furnizorului) precum si a datelor produselor facturate (denumire, cantitate, pret). In cadrul Sistemului de gestiune clienti/furnizori se inregistreaza doar factura si plata acesteia, receptia produselor si constatarea eventualelor diferente se face in Sistemul de gestiune al stocurilor.
Incasarea unei sume de bani de la un client se inregistreaza prin retinerea unor date ca numarul, tipul si data documentului precum si data incasarii acestuia. O incasare de la un client se poate face pentru una sau mai multe facturi, de aceea se retine numarul si valoarea fiecarei facturi incasate pe baza aceluiasi document.
Plata unui furnizor. Ca si in cazul incasarii, un document ce atesta plata unui anumit furnizor poate achita una sau mai multe facturi, partial sau total. De aceea retinem, pe langa datele specifice documentului si numarul si valoarea achitata din factura respectiva.
Compensarea unor facturi. In cazul in care clientul este si furnizor in acelasi timp se pot face compensari. Acestea se inregistreaza prin datele specifice procesului verbal de compensare dar si prin numarul si valoarea compensata pentru fiecare factura.
La o prima analiza a cerintelor functionale ale sistemului informational pot fi identificate urmatoarele entitati de date:
Analizand mai atent sistemul se observa ca intre unele entitati exista o relatie de tipul multe-la-multe, ceea ce determina descompunerea unora dintre entitati in doua sau mai multe tabele.
Astfel rezulta urmatoarea descompunere:
este nevoie sa se faca o distinctie intre facturile primite de la furnizor si cele emise clientului. Din aceasta cauza entitatea FACTURA se descompune, intr-o prima faza, in FACTURI_PRIMITE si FACTURI_INTOCMITE.
a doua observatie care se impune consta in modul de intocmire a facturii. FACTURILE_INTOCMITE si trimise clientilor cuprind denumirea lucrarii si suma totala cheltuita cu realizarea ei in luna care s-a terminat. Tipurile de cheltuieli sunt trecute analitic in situatia de plata care trebuie aprobata de client, un exemplar al acesteia atasandu-se facturii.Trebuie retinute insa datele despre borderoul aferent fiecarei facturi intocmite intr-o tabela separata numita BORDEROU_VANZARI.
FACTURILE_PRIMITE de la furnizor cuprind campuri multivaloare cu datele despre produsele primite (denumire, cantitate,unitate de masura si pret unitar). De aceea este nevoie sa descompunem entitatea FACTURI_PRIMITE, atributele cu valori multiple introducandu-le intr-o noua tabela numita DATEFACT_PRIMITE, a carei cheie primara va fi codul produsului si numarul liniei din factura.
deoarece datele generale despre cele doua operatiuni sunt identice (la fiecare retinem numarul, tipul si data documentului ce atesta operatiunea facuta precum si data cand aceasta s-a realizat), cele doua entitati le vom transforma in una singura numita INCASARI_PLATI, diferenta facand-o in momentul inregistrarii facturii.
datorita existentei atributelor multivaloare (pe un document pot fi achitate una sau mai multe facturi, partial sau total) suntem nevoiti sa descompunem entitatea INCASARI_PLATI, pentru atributele cu valori multiple (numar factura, valoare si suma ramasa) construind o noua entitate. Pentru a diferentia facturile platite de cele incasate am preferat ca in loc de o tabela sa construim doua: una pentru INCASARI_FACTURI si una pentru PLATI_FACTURI, fiecare continand aceleasi campuri. Diferenta este numarul facturii care, in cazul tabelei INCASARI_FACTURI il preluam din tabela FACTURI_INTOCMITE, in timp ce pentru PLATI_FACTURI acesta va fi preluat din tabela FACTURI_PRIMITE.
deoarece contin aceleasi date, am preferat sa le unim intr-o singura entitate numita CLIENTI_FURNIZORI care va contine, pe langa datele acestora (denumire, adresa, telefon, cod fiscal, denumirea bancii si numarul contului bancar) si un camp numit "tip" care ne va spune daca este un furnizor, un client sau si furnizor si client.
si in noua tabela apar atribute care se repeta (localitatea,judetul, prefixul telefonic). De aceea vom adauga doua noi tabele in care sa le retinem: JUDETE in care vom inregistra denumirea judetului si simbolul auto si tabela LOCALITATE cu denumirea localitatii, codul postal si prefixul telefonic.
Descrierea logicii unor module prin pseudocod
trigger trg_facti_dupa_ins
dupa inserare infacturi_intocmite
pentru fiecare linie
variabile
v_val borderou_vanzari.valcutvabv%type;
v_data borderou_vanzari.databv%type;
inceput trigger
pac_clfurniz.v_ declans_facti:=true;
actualizare clienti_furnizori. sold_cl=nvl(sold_cl,0)+:new. valfact unde codcf =:new.codcf;
v_val:= cauta valcutvabv din borderou_vanzari unde codbv = :new.codbv;
daca :new.valfact <> v_val atunci
raise_application_error(-20502,'Valoarea cu TVA a facturii nu corespunde cu valoarea cu TVA a borderoului de vanzari!');
sfarsit daca;
v_data :=cauta databv din borderou_vanzari unde codbv = :new.codbv;
daca :new.datafacti < v_data atunci
raise_application_error(-20503,'Factura se emite pe baza borderoului de vanzari!(databorderoului <datafacturii)');
sfarsit daca;
pac_clfurniz.v_ declans_facti:=false;
sfarsit trigger;
trigger trg_ datecom_dupa_row
dupa inserare or actualizare or stergere on datecomanda
pentru fiecare linie
variabile
v_pu datecomanda .punitar%type;
v_cant datecomanda .cant%type;
v_val comanda. valoare%type;
inceput trigger
pac_clfurniz.v_ declans_datecom := true;
daca inserare or actualizare atunci
v_pu := :new.punitar;
v_cant := :new.cant;
v_pu := v_pu * v_cant;
v_val := round( v_pu *(1+pac_clfurniz.f_produse_proctva (:new.codprodus)),-3);
actualizare comanda . valoare= valoare+v_val unde nrcomanda= :new.nrcomanda;
sfarsit daca;
daca stergere or actualizare atunci
v_pu := :old.punitar;
v_cant := :old.cant;
v_pu := v_pu * v_cant;
v_val := round( v_pu* pac_clfurniz.f_produse_ proctva(:old.codprodus),-3);
actualizare comanda . valoare = valoare-v_val unde nrcomanda = :old.nrcomanda;
sfarsit daca;
pac_clfurniz.v_ declans_datecom := false;
sfarsit trigger
trigger trg_datefact _dupa_row
dupa inserare or actualizare or stergere on datefact_primite
pentru fiecare linie
variabile
v_pu datefact_primite .pretunitar%type;
v_cant datefact_primite .cantitate%type;
v_val1 facturi_primite. valfaratva%type;
v_val3 facturi_primite. valcutva%type;
v_val2 facturi_primite. valtva%type;
inceput trigger
pac_clfurniz.v_declans _datefact := true;
daca inserare or actualizare atunci
v_pu := :new.pretunitar;
v_cant := :new.cantitate;
v_val1 := v_pu*v_cant;
v_val2 := round( v_pu *v_cant*pac_clfurniz.f_produse _proctva(:new.codprodus),-3);
v_val3 := v_val1+v_val2;
actualizare facturi_primite .valfaratva= valfaratva+v_val1, valtva=valtva+v_val2, valcutva= valcutva+v_val3 unde nrfactp= :new.nrfactp;
actualizare produse . cantstoc=cantstoc+v_cant unde codprodus= :new.codprodus;
sfarsit daca;
daca stergere or actualizare atunci
v_pu := :old.pretunitar;
v_cant := :old.cantitate;
v_val1 := v_pu*v_cant;
v_val2 := round( v_pu* v_cant*pac_clfurniz.f_produse_proctva (:old.codprodus),-3);
v_val3 := v_val1+v_val2;
actualizare facturi_primite.valfaratva= valfaratva-v_val1, valtva=valtva-v_val2, valcutva= valcutva-v_val3 unde nrfactp= :old.nrfactp;
actualizare produse . cantstoc=cantstoc-v_cant unde codprodus= :old.codprodus;
sfarsit daca;
pac_clfurniz.v_declans_ datefact := false;
sfarsit trigger
trigger trg_plf_rest
inainte inserare on plati_facturi
pentru fiecare linie
variabile
v_min int;
suma int;
inceput trigger
v_min :=cauta valcutva din facturi_primite unde nrfactp = :new.nrfactp;
suma :=cauta nvl(sum(valp),0) din plati_facturi unde nrfactp = :new.nrfactp;
:new.restp :=v_min -suma- :new.valp;
daca :new.restp<0 atunci
raise_application_error(-20526,'Valoarea achitata depaseste restul de plata pentru factura '|| :new.nrfactp);
sfarsit daca;
sfarsit trg_plf_rest;
functie f_factp_codcf(nrfact_ facturi_primite.nrfactp%type) intoarce clienti_furnizori.codcf%type
variabile
v_codcf clienti_furnizori.codcf%type;
inceput functie
v_codcf :=cauta codcf din facturi_primite unde nrfactp=nrfact_;
intoarce v_codcf;
sfarsit f_factp_codcf;
trigger trg_istfactp_ins
inainte stergere on facturi_primite
pentru fiecare linie
inceput trigger
inserare in istoric_facturi (nrfact, datafact, valcutva) valorile (:old.nrfactp, :old.datafactp, :old.valcutva);
sfarsit trg_istfactp_ins;
trigger trg_produse _ins_inainte_row
inainte inserare on produse
pentru fiecare linie
inceput trigger
cauta codprodus_sqn.nextval in :new.codprodus din dual;
sfarsit trigger;
trigger trg_fact_pr_inainte_upd_row
inainte
PENTRU FIECARE LINIE
INCEPUT
pac_clfurniz.v_declans_factp:=true;
daca :new.nrfactp<>:old.nrfactp atunci
ACTUALIZARE plati_facturi . nrfactp=:NEW.nrfactp UNDE nrfactp=:OLD.nrfactp;
ACTUALIZARE datefact_primite . nrfactp=:NEW.nrfactp UNDE nrfactp=:OLD.nrfactp;
ACTUALIZARE compensarefact_primite . nrfactp=:NEW.nrfactp UNDE nrfactp=:OLD.nrfactp;
sfarsit daca;
daca :new.codcf<> :old.codcf atunci
daca :new.valcutva<> :old.valcutva atunci
actualizare clienti_furnizori . sold_furniz =nvl(sold_furniz,0) + :new.valcutva unde codcf=:new.codcf;
actualizare clienti_furnizori . sold_furniz=nvl(sold_furniz,0) -:old.valcutva
unde codcf=:old.codcf;
altfel
actualizare clienti_furnizori . sold_furniz= nvl(sold_furniz,0)+:old.valcutva
unde codcf=:new.codcf;
actualizare clienti_furnizori . sold_furniz =nvl(sold_furniz,0)-:old.valcutva
unde codcf =:old.codcf;
sfarsit daca;
altfel
daca :new.valcutva <>:old.valcutva atunci
actualizare clienti_furnizori . sold_furniz= nvl(sold_furniz,0)+ :new.valcutva -:old.valcutva unde codcf=:old.codcf;
sfarsit daca;
sfarsit daca;
pac_clfurniz.v_ declans_factp:=false;
SFARSIT;
Proiectarea formularelor
I Definirea scenariilor de lucru ale utilizatorilor
Scenariul 1. Introducerea unui client/furnizor nou
Sarcinile de lucru sunt urmatoarele:
v Completarea datelor de individualizare ale clientului/furnizorului:
Codul realizat prin concatenarea primelor litere din denumirea clientului/furnizorului;
Tipul care poate lua ca valori: "C" (client), "F" (furnizor), "CF" (si client si furnizor);
Denumirea clientului/furnizorului;
Adresa;
Localitatea si judetul in care acesta isi are resedinta.Denumirea judetului, simbolul auto al acestuia si prefixul telefonic se vor alege dintr-o lista;
Codul fiscal in cazul celor inregistrati;
Banca si numarul contului prin intermediul carora se vor efectua platile/incasarile;
v Salvarea datelor introduse prin actionarea butonului de salvare sau la inchiderea formularului.
Scenariul 2.Modificarea datelor unui client/furnizor
Ca sarcini de lucru se evidentiaza:
v Cautarea clientului/furnizorului care se poate face dupa diverse criterii (cod, denumire ).
v Modificarea uneia sau mai multor date ale clientului/furnizorului respectiv datorata mutarii sediului in cadrul aceleasi localitati sau intr-o localitate noua, schimbarii bancii care-l reprezinta sau a contului din/in care se fac platile/incasarile.
v Validarea modificarilor facute, campurile neacceptand valori null-e.
v Salvarea modificarilor realizate.
Scenariul 3. Stergerea unui client/furnizor
Sarcinile de lucru sunt:
v Cautarea clientului/furnizorului dorit se face dupa codul acestuia sau dupa denumire.
v Stergerea inregistrarilor.
v Validarea actiunii de stergere. Aceasta nu va avea loc daca pentru clientul/furnizorul respectiv sunt inregistrate contracte/comenzi, facturi sau compensari.
v Salvarea stergerii.
Scenariul 4. Adaugarea unei facturi primite de la un furnizor
Sarcinile de lucru sunt urmatoarele:
v Completarea datelor de individualizare ale documentului:
Numarul facturii;
Selectarea furnizorului dintr-o lista ce contine numele furnizorilor;
Data inscrisa pe factura;
v Adaugarea datelor privind produsele facturate. Aceasta operatiune se repeta pentru fiecare produs facturat:
Selectarea produsului. Utilizatorul introduce codul materialului dupa care va verifica daca este corect. In cazul in care utilizatorul nu stie codul sau acesta este incorect, va putea alege denumirea produsului dintr-o lista cu toate produsele;
Adaugarea liniei, a cantitatii primite, a unitatii de masura si pretului unitar pentru fiecare produs inscris pe factura;
v Verificarea corectitudinii datelor introduse. Se verifica in special valoarea totala, valoarea TVA-ului si valoarea fara TVA a facturii. Daca se constata diferente se verifica inca o data valoarea campurilor numerice completate, iar daca erorile apar ca urmare a unor greseli de calcul din partea furnizorului se ia legatura cu acesta.
v Salvarea datelor introduse prin actionarea butonului de salvare sau la inchiderea formularului.
Scenariul 5. Modificarea datelor de pe o factura primita de la un furnizor
Ca sarcini de lucru se evidentiaza:
v Cautarea facturii care se poate face dupa numarul acesteia.
v Modificarea uneia sau mai multor date din factura respectiva (numar,cod furnizor,codul produselor, cantitati etc), adaugarea unui nou produs in lista celor facturate, stergerea unui produs.
v Validarea modificarilor facute sau abandonarea acestora.
v Salvarea modificarilor realizate.
Scenariul 6. Stergerea unei facturi primite
Sarcinile de lucru sunt:
v Cautarea facturii dorite se face dupa numarul acesteia;
v Stergerea inregistrarilor. Trebuie sterse inclusiv produsele facturate;
v Validarea actiunii de stergere. Aceasta nu va avea loc daca pentru factura respectiva sunt inregistrate plati sau compensari;
v Salvarea stergerii.
Scenariul 7. Adaugarea unei facturi emise unui client
Sarcinile de lucru sunt urmatoarele:
v Completarea datelor de individualizare ale documentului:
Numarul facturii;
Selectarea clientului dintr-o lista ce contine numele acestora;
Data inscrisa pe factura;
v Adaugarea datelor privind borderoul de vanzari ce sta la baza facturii. Aceasta operatiune are ca efect introducerea urmatoarelor date:
Codul borderoului. Utilizatorul introduce codul acestuia dupa care va verifica daca este corect;
Denumirea lucrarii;
Codul contractului ce sta la baza lucrarii.Utilizatorul are la dispozitie o lista cu toate codurile contractelor pe care firma le-a intocmit si va alege valoarea de care are nevoie;
Valoarea cu TVA, valoarea fara TVA si valoarea TVA-ului;
v Verificarea corectitudinii datelor introduse;
v Salvarea datelor introduse prin actionarea butonului de salvare sau la inchiderea formularului.
Scenariul 8. Modificarea datelor de pe o factura emisa unui client
Ca sarcini de lucru se evidentiaza:
v Cautarea facturii care se face dupa numarul acesteia;
v Modificarea uneia sau mai multor date din factura respectiva (numar,cod client,cod borderou, valori numerice etc);
v Validarea modificarilor facute sau abandonarea acestora;
v Salvarea modificarilor realizate.
Scenariul 9. Stergerea (stornarea) unei facturi emise
Sarcinile de lucru sunt:
v Cautarea facturii dorite se face dupa numarul acesteia.
v Stergerea inregistrarilor. Se sterg inregistrarile referitoare la factura (numarul si data acesteia). Daca se doreste stergerea unui borderou, atunci trebuie sa se stearga si datele despre factura, altfel va apare eroare;
v Validarea actiunii de stergere a facturii. Aceasta nu va avea loc daca pentru factura respectiva sunt inregistrate plati sau compensari. In cazul stergerii borderoului fara eliminerea datelor facturii va apare mesaj de eroare;
v Salvarea stergerii.
Scenariul 10. Introducerea unui contract nou
Sarcinile de lucru sunt urmatoarele:
v Completarea datelor de individualizare ale contractului:
Numarul contractului;
Tipul care poate lua ca valori: "C" (contract incheiat cu un client), "F" (contract incheiat cu un furnizor);
Codul clientului/furnizorului se completeaza prin introducerea sa sau prin alegerea acestuia dintr-o lista ce contine denumirea si codul clientului/furnizorului ;
Data incheierii contractului;
Data cand lucrarea trebuie predata;
v Salvarea datelor introduse prin actionarea butonului de salvare sau la inchiderea formularului.
Scenariul 11.Modificarea datelor unui contract
Ca sarcini de lucru se evidentiaza:
v Cautarea contractului care se face dupa codul contractului si codul clientului/furnizorului;
v Modificarea uneia sau mai multor date ale acestuia (cod client/furnizor, cod contract, data incheierii lui sau cea a predarii lucrarii);
v Validarea modificarilor facute;
v Salvarea modificarilor realizate.
Scenariul 12. Stergerea unui contract
Sarcinile de lucru sunt:
v Cautarea contractului dorit se face dupa codul acestuia si codul clientului/furnizorului;
v Stergerea inregistrarilor;
v Validarea actiunii de stergere. Aceasta nu va avea loc daca pentru contractul respectiv sunt inregistrate facturi;
v Salvarea stergerii.
Scenariul 13. Adaugarea unei comenzi noi
Sarcinile de lucru sunt urmatoarele:
v Completarea datelor de individualizare ale documentului:
Numarul comenzii;
Selectarea furnizorului dintr-o lista ce contine numele acestora;
Data inscrisa pe comanda;
Adresa unde se doreste primirea produselor;
v Adaugarea datelor privind produsele comandate. Aceasta operatiune se repeta pentru fiecare produs:
Selectarea produsului. Utilizatorul introduce codul materialului dupa care va verifica daca este corect. In cazul in care utilizatorul nu stie codul sau acesta este incorect, va putea alege denumirea produsului dintr-o lista cu toate produsele;
Adaugarea liniei, a cantitatii comandate, a unitatii de masura pentru fiecare produs inscris pe comanda;
v Verificarea corectitudinii datelor introduse.
v Salvarea datelor introduse prin actionarea butonului de salvare sau la inchiderea formularului.
Scenariul 14. Modificarea datelor de pe o comanda
Ca sarcini de lucru se evidentiaza:
v Cautarea comenzii care se poate face dupa numarul acesteia.
v Modificarea uneia sau mai multor date din comanda respectiva (numar,cod furnizor,codul produselor, cantitati etc), adaugarea unui nou produs in lista celor comandate, stergerea unui produs.
v Validarea modificarilor facute sau abandonarea acestora.
v Salvarea modificarilor realizate.
Scenariul 15. Stergerea unei comenzi existente
Sarcinile de lucru sunt:
v Cautarea comenzii dorite se face dupa numarul acesteia;
v Stergerea inregistrarilor. Trebuie sterse inclusiv produsele comandate;
v Validarea actiunii de stergere. Aceasta nu va avea loc daca pentru comanda respectiva sunt inregistrate facturi;
v Salvarea stergerii.
Scenariul 16. Adaugarea unei incasari noi
Sarcinile de lucru sunt urmatoarele:
v Completarea datelor de individualizare ale documentului:
Codul incasarii;
Numarul documentului ce sta la baza incasarii;
Denumirea documentului, respectiv cec, chitanta, ordin de plata, bilet la ordin
Data inscrisa pe document;
Data incasarii;
v Adaugarea datelor privind facturile incasate. Aceasta operatiune se repeta pentru fiecare factura in parte:
Selectarea facturii. Utilizatorul introduce numarul facturii dupa care va verifica daca este corect. In cazul in care utilizatorul nu stie numarul sau acesta este incorect, il va putea alege dintr-o lista cu toate facturile emise;
Adaugarea valorii incasate pentru factura aleasa;
v Verificarea corectitudinii datelor introduse.
v Salvarea datelor introduse prin actionarea butonului de salvare sau la inchiderea formularului.
Scenariul 17. Modificarea datelor unei incasari
Ca sarcini de lucru se evidentiaza:
v Cautarea incasarii care se poate face dupa codul acesteia.
v Modificarea uneia sau mai multor date din incasarea respectiva (numar factura,cod incasare etc), adaugarea unei noi facturi pe lista incasarilor, stergerea unei facturi.
v Validarea modificarilor facute sau abandonarea acestora.
v Salvarea modificarilor realizate.
Scenariul 18. Stergerea unei incasari
Sarcinile de lucru sunt:
v Cautarea incasarii dorite se face dupa codul acesteia;
v Stergerea inregistrarilor. Trebuie sterse inclusiv facturile incasate;
v Validarea actiunii de stergere. Aceasta nu va avea loc daca pentru incasarea respectiva sunt sterse doar datele despre aceasta nu si facturile inregistrate;
v Salvarea stergerii.
Scenariul 19. Adaugarea unei plati noi
Sarcinile de lucru sunt urmatoarele:
v Completarea datelor de individualizare ale documentului:
Codul platii;
Numarul documentului ce sta la baza platii;
Denumirea documentului, respectiv cec, chitanta, ordin de plata, bilet la ordin
Data inscrisa pe document;
Data platii;
v Adaugarea datelor privind facturile platite. Aceasta operatiune se repeta pentru fiecare factura in parte:
Selectarea facturii. Utilizatorul introduce numarul facturii dupa care va verifica daca este corect. In cazul in care utilizatorul nu stie numarul sau acesta este incorect, il va putea alege dintr-o lista cu toate facturile primite;
Adaugarea valorii platite pentru factura aleasa;
v Verificarea corectitudinii datelor introduse.
v Salvarea datelor introduse prin actionarea butonului de salvare sau la inchiderea formularului.
Scenariul 20. Modificarea datelor unei plati
Ca sarcini de lucru se evidentiaza:
v Cautarea platii care se poate face dupa codul acesteia.
v Modificarea uneia sau mai multor date din plata respectiva (numar factura,cod plata etc), adaugarea unei noi facturi pe lista platilor, stergerea unei facturi.
v Validarea modificarilor facute sau abandonarea acestora.
v Salvarea modificarilor realizate.
Scenariul 21. Stergerea unei plati
Sarcinile de lucru sunt:
v Cautarea platii dorite se face dupa codul acesteia;
v Stergerea inregistrarilor. Trebuie sterse inclusiv facturile platite;
v Validarea actiunii de stergere. Aceasta nu va avea loc daca pentru plata respectiva sunt sterse doar datele despre aceasta nu si facturile inregistrate;
v Salvarea stergerii.
Scenariul 22. Adaugarea unei compensari noi
Sarcinile de lucru sunt urmatoarele:
v Completarea datelor de individualizare ale documentului:
Codul compensarii;
Codul clientului/furnizorului;
Valoarea compensarii;
v Adaugarea datelor privind facturile compensate. Aceasta operatiune se repeta pentru fiecare factura in parte, atat pentru cele emise cat si pentru cele primite:
Selectarea facturii. Utilizatorul introduce numarul facturii dupa care va verifica daca este corect. In cazul in care utilizatorul nu stie numarul sau acesta este incorect, il va putea alege dintr-o lista cu toate facturile emise, respectiv primite;
Adaugarea valorii de compensat pentru factura aleasa;
v Verificarea corectitudinii datelor introduse.
v Salvarea datelor introduse prin actionarea butonului de salvare sau la inchiderea formularului.
Scenariul 23. Modificarea datelor unei incasari
Ca sarcini de lucru se evidentiaza:
v Cautarea compensarii care se poate face dupa codul acesteia.
v Modificarea uneia sau mai multor date din compensarea respectiva (numar factura,cod compensare etc), adaugarea unei noi facturi pe lista celor compensate, stergerea unei facturi.
v Validarea modificarilor facute sau abandonarea acestora.
v Salvarea modificarilor realizate.
Scenariul 24. Stergerea unei compensari
Sarcinile de lucru sunt:
v Cautarea compensarii dorite se face dupa codul acesteia;
v Stergerea inregistrarilor. Trebuie sterse inclusiv facturile compensate;
v Validarea actiunii de stergere. Aceasta nu va avea loc daca pentru compensarea respectiva sunt sterse doar datele despre aceasta nu si facturile inregistrate;
v Salvarea stergerii.
II Identificarea si definirea obiectelor si actiunilor formularelor
a) Stabilirea dimensiunilor standard (800x600);
b) Identificarea surselor de date necesare functionarii formularului:
1. tabelele JUDETE, LOCALITATE, CLIENTI_FURNIZORI pentru formularul "Introducere date clienti/furnizori";
2. tabela CONTRACTE pentru formularul "Date contracte";
3. tabelele COMANDA si DATE_COMANDA pentru formularul "Date comenzi";
4. tabelele BORDEROU VANZARI si FACTURI_INTOCMITE pentru formularul "Facturi intocmite";
5. tabelele FACTURI PRIMITE si DATEFACT_PRIMITE pentru formularul "Facturi primite";
6. tabelele INCASARI_PLATI si INCASARI_FACTURI pentru formularul "Incasari";
7. tabelele INCASARI_PLATI si PLATI_FACTURI pentru formularul "Plati";
8. tabelele COMPENSARE si COMPENSARE_FACTURI pentru formularul "Compensari";
9. tabela PRODUSE pentru formularul "Produse";
10. tabelele JUDETE si LOCALITATE pentru formularul "Localitati";
11. tabelele UTILIZATORI si LOGARE pentru formularele "Login" si "Utilizatori"
c) Stabilirea modalitatilor de afisare a datelor (text field, combo box, grid);
d) Sincronizarea controalelor cu sursele de date;
e) Adaugarea butoanelor ce vor asigura functionalitatea formularului si efectuarea tranzactiilor;
f) Implementarea comportamentului diverselor obiecte de pe formular;
g) Rafinarea formularului:
1. adaugarea unor informatii suplimentare (solduri, totaluri, rest de plata etc);
2. linia curenta dintr-un grid va avea alta culoare pentru a scoate in evidenta localizarea curenta a controlului;
3. asigurarea unei functionalitati totale a formularului si prin utilizarea exclusiva a tastaturii, combinatiile de taste pentru aceasi tranzactie mentinandu-se in toate formurile;
h) Facilitati de utilizare propuse:
1. ordonarea dupa o anumita coloana;
2. filtrarea documentelor dupa o conditie;
3. cautarea unui anumit document care indeplineste cerinta utilizatorului;
Trebuie de precizat ca utilizatorul poate efectua modificari pe un formular doar dupa apasarea butoanelor de actualizare (adaugare, modificare, stergere). Datele modificate vor fi salvate prin apasarea butonului de salvare.
In momentul parasirii formularului, utilizatorul va fi intrebat daca doreste salvarea modificarilor facute. In cazul in care doreste abandonarea tranzactiei pe care a inceput-o, la apasarea butonului de abandon va fi intrebat daca operatiunea va fi abandonata.
Fiecare formular contine un buton ce permite parasirea acestuia si intoarcerea la pagina principala.
Accesul dintr-un formular in altul se va face fie prin utilizarea meniului din pagina principala a aplicatiei, fie prin actionarea butoanelor de comanda din fiecare pagina, dupa cum se observa din imaginile urmatoare:
Fig.1 Formularul cu meniul principal
Fig.2 Formularul pentru introducerea datelor despre clienti/furnizori
Fig.3 Formularul pentru preluarea facturilor intocmite
Fig. 4 Formularul pentru logarea la aplicatie
III TESTAREA APLICATIEI
TESTAREA CAILOR DE BAZA
CREATE OR REPLACE TRIGGER trg_fact_int_before_upd_row
before
BEGIN
if :new.nrfacti<>:old.nrfacti then
UPDATE compensarefact_intocmite SET nrfacti=:NEW.nrfacti
WHERE nrfacti =:OLD.nrfacti;
UPDATE incasari_facturi SET nrfacti=:NEW.nrfacti
WHERE nrfacti=:OLD.nrfacti;
end if;
if :new.codcf<>:old.codcf then
if :new.valfact<> :old.valfact then
update clienti_furnizori set sold_cl=nvl(sold_cl,0) +:new.valfact
where codcf=:new.codcf;
update clienti_furnizori set sold_cl=nvl(sold_cl,0) -:old.valfact
where codcf=:old.codcf;
else
update clienti_furnizori set sold_cl=nvl(sold_cl,0)+:old.valfact
where codcf=:new.codcf;
update clienti_furnizori set sold_cl=nvl(sold_cl,0)-:old.valfact
where codcf=:old.codcf;
end if;
else
if :new.valfact<>:old.valfact then
update clienti_furnizori set sold_cl=nvl(sold_cl,0)+:new .valfact-:old.valfact
where codcf=:old.codcf;
end if;
end if;
end;
Calea1:
Calea2: 1-4-5-6-8
Calea3: 1-4-5-7-8
Calea4: 1-4-9-10-11-12-13
Denumire caz test |
Date de intrare |
Rezultate asteptate |
Rezultate obtinute |
Observatii |
Modif in cascada a nrfacti |
Update facturi_intocmite set nrfacti=101 where nrfacti=123 |
compensarefact_intocmite. nrfacti=101,unde nrfacti era 123 incasari_facturi.nrfacti=101, unde nrfacti era 123 |
compensarefact_intocmite .nrfacti=101,unde nrfacti era 123 incasari_facturi.nrfacti=101, unde nrfacti era 123 | |
Modif codcf si valfact pt o fact data |
Update facturi_intocmite set codcf=11 and valfact=100 where nrfacti=124 |
clienti_furnizori.sold_cl =150+1100=1250, unde codcf=11; clienti_furnizori.sold_cl=9900-1100=8800, unde codcf=1011; |
clienti_furnizori.sold_cl =150+1100=1250, unde codcf=11; clienti_furnizori.sold_cl =9900-1100=8800, unde codcf=1011; |
(nrfacti, ,codcf, valfact) (124, 1011,1100) sold_cl=150,codcf=11 sold_cl=9900,codcf=1011 |
Modif codcf pt o fact data |
Update facturi_intocmite set codcf=11 where nrfacti=125 |
clienti_furnizori.sold_c l=1250+1000 =2250,unde codcf=11 clienti_furnizori.sold_c l=8800-1000 =7800,unde codcf=1011; |
clienti_furnizori.sold_cl =1250+1000=2250, unde codcf=11 clienti_furnizori.sold_cl =8800-1000=7800, unde codcf=1011 |
(nrfacti,codcf, valfact) (125,1011, 1000); sold_cl=1250,codcf=11 sold_cl=8800,codcf=1011 |
Modif valfact pt o fact data |
Update facturi_intocmite set valfact=100 where nrfacti=125 |
clienti_furnizori.sold_cl=7800+100-1000=6900,unde codcf=1011 |
clienti_furnizori.sold_cl =7800+100-1000=6900, unde codcf=1011 |
(nrfacti,codcf, valfact) (125,1011, 1000); sold_cl=7800,codcf=1011 |
create or replace trigger trg_incf_rest
before insert on incasari_facturi
for each row
declare
v_min int;
suma int;
v_tip char(2);
begin
select valfact into v_min from facturi_intocmite where nrfacti = :new.nrfacti;
select nvl(sum(vali),0) into suma from incasari_facturi where nrfacti = :new.nrfacti;
:new.resti :=v_min -suma- :new.vali;
if :new.resti<0 then
raise_application_error(-20527,'Valoarea incasata depaseste restul de incasat pentru factura '|| :new.nrfacti);
end if;
select tipip into v_tip from incasari_plati where codip= :new.codip;
if upper( v_tip) in ( 'P','PA') then
raise_application_error (-20528,'Codul ales nu corespunde unei incasari!');
end if;
end trg_incf_rest
Calea 1: 1-2-3-4-5
Calea 2: 1-2-6-7-8-9
Denumire caz test |
Date de intrare |
Rezultate asteptate |
Rezultate obtinute |
Observatii |
Inserarea unei incasari mai mari decat restul ramas pt o factura |
Insert into incasari_facturi values(11,124, 5000,0) |
:new.resti :=11900-7900-5000=-1000 Valoarea incasata depaseste restul de incasat pentru factura 124 |
:new.resti :=11900-7900-5000=-1000 Valoarea incasata depaseste restul de incasat pentru factura 124 |
V_min=11900 Suma=7900 |
Inserarea unui codip coresp unei plati/avans platit |
Insert into incasari_facturi values(17 . ) |
Tipip := 'P' Codul ales nu corespunde unei incasari |
Tipip := 'P' Codul ales nu corespunde unei incasari |
create or replace trigger trg_compfi_aft
after insert or update on compensarefact_intocmite
for each row
begin
pac_clfurniz.v_declans _compfi := true;
if inserting then
update facturi_intocmite set valincasata= valincasata+:new.valdecomp where nrfacti= :new.nrfacti;
update clienti_furnizori set sold_cl=nvl(sold_cl,0) -:new.valdecomp where codcf=pac_clfurniz. f_facti_codcf(:new.nrfacti);
insert into rest_contracte values (pac_clfurniz.f_facti_codcon(:new.nrfacti), to_date(sysdate,'dd/mm/yyyy'), pac_clfurniz.f_contracte_val (pac_clfurniz.f_facti_codcon (:new.nrfacti)),
nvl( pac_clfurniz.f_calcul_restc (pac_clfurniz.f_facti_codcon (:new.nrfacti))-:new. valdecomp,0));
end if;
if updating then
if :new.nrfacti<>:old.nrfacti then
if :new.valdecomp<> :old.valdecomp then
update facturi_intocmite set valincasata= valincasata+:new.valdecomp where nrfacti= :new.nrfacti;
update facturi_intocmite set valincasata= valincasata-:old.valdecomp where nrfacti= :old.nrfacti;
update clienti_furnizori set sold_cl=nvl(sold_cl,0)-:new.valdecomp where codcf=pac_clfurniz.f_facti _codcf(:new.nrfacti);
update clienti_furnizori set sold_cl=nvl (sold_cl,0)+:old.valdecomp where codcf=pac_clfurniz. f_facti_codcf(:old.nrfacti);
insert into rest_contracte values (pac_clfurniz.f_facti_codcon (:new.nrfacti),to_date (sysdate,'dd/mm/yyyy'),pac_clfurniz.f_contracte_val (pac_clfurniz.f_facti_codcon (:new.nrfacti)),
nvl( pac_clfurniz. f_calcul_restc(pac_clfurniz.f _facti_codcon(:new.nrfacti))- :new.valdecomp,0));
update rest_contracte set rest=rest+:old.valdecomp where codcontract=pac_clfurniz.f_facti_codcon (:old.nrfacti);
else
update facturi_intocmite set valincasata= valincasata+:old.valdecomp where nrfacti= :new.nrfacti;
update facturi_intocmite set valincasata= valincasata-:old.valdecomp where nrfacti= :old.nrfacti;
update clienti_furnizori set sold_cl=nvl(sold_cl,0)-:old.valdecomp where codcf=pac_clfurniz.f_facti_codcf(:new.nrfacti);
update clienti_furnizori set sold_cl=nvl(sold_cl,0)+:old.valdecomp where codcf=pac_clfurniz.f_facti_codcf(:old.nrfacti);
insert into rest_contracte values (pac_clfurniz.f_facti_codcon (:new.nrfacti),to_date (sysdate,'dd/mm/yyyy'),pac_clfurniz.f_contracte_val (pac_clfurniz.f_facti_codcon (:new.nrfacti)),
nvl( pac_clfurniz.f_calcul_restc (pac_clfurniz.f_facti_codcon (:new.nrfacti))-:old. valdecomp,0));
update rest_contracte set rest=rest+ :old.valdecomp where codcontract= pac_clfurniz.f_facti_ codcon(:old.nrfacti);
end if;
else
if :new.valdecomp<>:old.valdecomp then
update facturi_intocmite set valincasata= valincasata+:new.valdecomp-:old.valdecomp where nrfacti= :old.nrfacti;
update clienti_furnizori set sold_cl=nvl(sold_cl,0)-:new.valdecomp+:old.valdecomp where codcf=pac_clfurniz.f_facti_codcf(:old.nrfacti);
update rest_contracte set rest=rest-:new.valdecomp+:old.valdecomp where codcontract=pac_clfurniz.f_facti_codcon(:old.nrfacti);
end if;
end if;
end if;
pac_clfurniz.v_declans_compfi := false;
end;
Calea1: 1-2-3-4
Calea2: 1-2-5-6-7-8-10
Calea3: 1-2-5-6-7-9-10
Calea4: 1-2-5-6-11-12-13-14-15-16-17
Denumire caz test |
Date de intrare |
Rezultate asteptate |
Rezultate obtinute |
Observatii |
Inserarea unei inreg in compensarefact_intocmite |
Insert into compensarefact_intocmite (codcompensare,nrfacti,valdecomp) values (11,123,5000); |
facturi_intocmite.valincasata= 6900+5000=11900,unde nrfacti=123; clienti_furnizori.sold_cl=25000-5000=20000, unde codcf=pac_clfurniz.f_facti_codcf(123)=1011; rest_contracte (pac_clfurniz.f_facti_codcon(123) ,to_date(sysdate,'dd/mm/yyyy'), pac_clfurniz.f_contracte_val(pac_clfurniz.f_facti_codcon(123), nvl( pac_clfurniz.f_calcul_restc (pac_clfurniz.f_facti_codcon(123)-5000,0)) = ( 13 , '15/07/2003', 10000,3000) |
facturi_intocmite.valincasata= 6900+5000 =11900,unde nrfacti=123; clienti_furnizori.sold_cl=25000-5000=20000, unde codcf=pac_clfurniz.f_facti_codcf(123)=1011; rest_contracte (pac_clfurniz.f_facti_codcon(123), to_date(sysdate,'dd/mm/yyyy'), pac_clfurniz.f _contracte_val (pac_clfurniz.f_facti_codcon(123) nvl ( pac_clfurniz.f_calcul_restc (pac_clfurniz.f_facti_codcon(123)-5000,0))=(13,'15/07/2003',10000,3000) |
Valincasata=6900,nrfacti=123, codcontract=13, Sold_cl=25000,codcf=1011, valcontract=10000,restc=80000 |
Modif nrfacti si valdecomp pt o compensaredata |
Update compensarefact_intocmite set nrfacti=15 and valdecomp=1000 where codcompensare=11 and nrfacti=123 |
facturi_intocmite.valincasata= 6900+5000=11900,unde nrfacti=15; facturi_intocmite set valincasata= 6900-1000=5900,unde nrfacti= 123; clienti_furnizori.sold_cl=25000-5000=20000,unde codcf=pac_clfurniz.f_facti_codcf(15)=1011; clienti_furnizori set sold_cl=2500+1000=3500, unde codcf=pac_clfurniz.f_facti_codcf(123)=1011; rest_contracte (pac_clfurniz.f_facti_codcon(15), to_date(sysdate,'dd/mm/yyyy'), pac_clfurniz.f_contracte_val (pac_clfurniz.f_facti_codcon(15), nvl( pac_clfurniz.f_calcul_restc (pac_clfurniz.f_facti_codcon(15)-100,0))=( 13 , '15/07/2003', 10000,7900) rest_contracte.rest=8000+1000=9000,unde codcontract=pac_clfurniz.f_facti_codcon(123)=13 |
facturi_intocmite.valincasata= 6900+5000=11900,unde nrfacti=15; facturi_intocmite set valincasata= 6900-1000=5900,unde nrfacti= 123; clienti_furnizori.sold_cl=25000-5000=20000,unde codcf=pac_clfurniz.f_facti_codcf(15)=1011; clienti_furnizori set sold_cl=2500+1000=3500, unde codcf=pac_clfurniz.f_facti_codcf(123)=1011; rest_contracte (pac_clfurniz.f_facti_codcon(15), to_date(sysdate,'dd/mm/yyyy'), pac_clfurniz.f_contracte_val (pac_clfurniz.f_facti_codcon(15), nvl( pac_clfurniz.f_calcul_restc (pac_clfurniz.f_facti_codcon(15)-100,0))=( 13 , '15/07/2003', 10000,7900) rest_contracte.rest=8000+1000=9000,unde codcontract=pac_clfurniz.f_facti_codcon(123)=13 |
Valincasata=6900,nrfacti=123, codcontract=13, valdecomp=5000, Sold_cl=25000,codcf=1011, valcontract=10000,restc=8000 Valincasata=6900,nrfacti=15, codcontract=13, Sold_cl=25000,codcf=1011, valcontract=10000,restc=8000 |
Modif nrfacti pt o compensare data |
Update compensarefact_intocmite set nrfacti=15 where codcompensare=11 and nrfacti=123 |
facturi_intocmite.valincasata= 6900+1000=7900,unde nrfacti=15; facturi_intocmite set valincasata= 6900-1000=5900,unde nrfacti= 123; clienti_furnizori.sold_cl=25000-1000=1500,unde codcf=pac_clfurniz.f_facti_codcf(15)=1011; clienti_furnizori.sold_cl=25000+1000=3500,unde codcf = pac_clfurniz.f_facti_codcf(123)=1011; rest_contracte ( pac_clfurniz.f _facti_codcon(15),to_date (sysdate,'dd/mm/yyyy'), pac_clfurniz.f_contracte_val (pac_clfurniz.f_facti_codcon(15), nvl( pac_clfurniz. f_calcul_restc ( pac_clfurniz .f_facti_codcon(15)-100,0))=( 13 , '15/07/2003', 10000,7000) rest_contracte.rest=8000+1000=9000,unde codcontract =pac_ clfurniz.f_facti_codcon(123)=13 |
facturi_intocmite.valincasata= 6900+1000=7900,unde nrfacti=15; facturi_intocmite set valincasata= 6900-1000=5900,unde nrfacti= 123; clienti_furnizori.sold_cl=25000-1000=1500,unde codcf=pac_clfurniz.f_facti_codcf(15)=1011; clienti_furnizori.sold_cl=25000+1000=3500,unde codcf = pac_clfurniz.f_facti_codcf(123)=1011; rest_contracte (pac_clfurniz.f_facti_codcon(15), to_date(sysdate,'dd/mm/yyyy'), pac_clfurniz.f_contracte_val (pac_clfurniz.f_facti_codcon(15), nvl( pac_clfurniz.f_calcul_restc (pac_clfurniz.f_facti_codcon(15)-100,0))=( 13 , '15/07/2003', 10000,7000) rest_contracte.rest=8000+1000=9000,unde codcontract =pac_ clfurniz.f_facti_codcon(123)=13 |
Valincasata=6900,nrfacti=123, codcontract=13, valdecomp=1000, Sold_cl=25000,codcf=1011, valcontract=10000,restc=8000 Valincasata=6900,nrfacti=15, codcontract=13, Sold_cl=25000,codcf=1011, valcontract=10000,restc=8000 |
Modif valdecomp pt o compensare data |
Update compensarefact_intocmite set valdecomp=5000 where codcompensare=11 and nrfacti=123 |
facturi_intocmite.valincasata= 6900+5000-1000=10900,unde nrfacti=123; clienti_furnizori.sold_cl=25000-5000+1000=21000,unde codcf=pac_clfurniz.f_facti_codcf(123)=1011; rest_contracte.rest=8000+1000-5000=4000,unde codcontract=pac_clfurniz.f_facti_codcon(123)=13 |
facturi_intocmite.valincasata= 6900+5000-1000=10900,unde nrfacti=123; clienti_furnizori.sold_cl=25000-5000+1000=21000,unde codcf=pac_clfurniz.f_facti_codcf(123)=1011; rest_contracte.rest=8000+1000-5000=4000,unde codcontract=pac_clfurniz.f_facti_codcon(123)=13 |
Valincasata=6900,nrfacti=123, codcontract=13, valdecomp=1000,Sold_cl=25000, codcf=1011, valcontract=10000,restc=80000 |
create or replace trigger trg_datefactp_before_upd_row
before update on datefact_primite for each row
begin
if :new.nrfactp<>:old.nrfactp then
if :new.cantitate<>:old.cantitate then
if :new.pretunitar<>:old.pretunitar then
update facturi_primite set valfaratva=:new.cantitate*: new.pretunitar-:old.cantitate* :old.pretunitar
where nrfactp=:new.nrfactp;
else
update facturi_primite set valfaratva=:new.cantitate*: old.pretunitar-:old.cantitate*: old.pretunitar
where nrfactp=:new.nrfactp;
end if;
else
if :new.pretunitar<>:old.pretunitar then
update facturi_primite set valfaratva=:old.cantitate*: new.pretunitar-:old.cantitate*: old.pretunitar
where nrfactp=:new.nrfactp;
else
update facturi_primite set valfaratva=:old.cantitate*:old. pretunitar-:old.cantitate*: old.pretunitar
where nrfactp=:new.nrfactp;
end if;
end if;
else
if :new.cantitate<>:old.cantitate then
if :new.pretunitar<>:old.pretunitar then
update facturi_primite set valfaratva=:new.cantitate*: new.pretunitar-:old.cantitate* :old.pretunitar
where nrfactp=:old.nrfactp;
else
update facturi_primite set valfaratva=:new.cantitate*: old.pretunitar-:old.cantitate*: old.pretunitar
where nrfactp=:old.nrfactp;
end if;
else
if :new.pretunitar<>:old.pretunitar then
update facturi_primite set valfaratva=:old.cantitate*: new.pretunitar-:old.cantitate*: old.pretunitar
where nrfactp=:old.nrfactp;
end if;
end if;
end if;
end;
Calea1:1-2-3-4-6-12
Calea2:1-2-3-5-6-12
Calea3:1-2-7-8-9-11-12
Calea4:1-2-7-8-10-11-12
Calea5:1-13-14-15-16-18
Calea6:1-13-14-15-17-18
Calea7:1-13-14-19-20-21-22-23-24
Denumire caz test |
Date de intrare |
Rezultate asteptate |
Rezultate obtinute |
Observatii |
Modif nrfactp,cant si pretunitar in datefact_primite |
Update datefact_ primite set nrfactp =101, cant=10, pretunitar =15 where nrfactp=136 |
facturi_primite.valfaratva=10*15-1*5=145, unde nrfactp=136; |
facturi_primite.valfaratva=10*15-1*5=145, unde nrfactp=136 |
Cant=1,pretunitar=5 |
Modif nrfactp,cant in datefact _primite |
Update datefact_ primite set nrfactp =101, cant=10 where nrfactp=136 |
facturi_primite.valfaratva=10*5-1*5=45, unde nrfactp=136; |
facturi_primite.valfaratva=10*5-1*5=45, unde nrfactp=136; |
Cant=1,pretunitar=5 |
Modif nrfactp si pretunitar in datefact_primite |
Update datefact_ primite set nrfactp =136, pretunitar=15 where nrfactp=13 |
facturi_primite.valfaratva=1*15-1*5=10, unde nrfactp=136; |
facturi_primite.valfaratva=1*15-1*5=10, unde nrfactp=136; |
Cant=1,pretunitar=5 |
Modif nrfactp in datefact_primite |
Update datefact_ primite set nrfactp =136 where nrfactp=101 |
facturi_primite.valfaratva=10*15-1*5=145, unde nrfactp=136; |
facturi_primite.valfaratva=10*15-1*5=145, unde nrfactp=136 |
Cant=10,pretunitar=15,nrfacti=136 Cant=1,pretunitar=5,nrfacti=101 |
Modif cant si pretunitar pt nrfactp data in datefact_primite |
Update datefact_ primite set cant=10, pretunitar=15 where nrfactp=136 |
facturi_primite.valfaratva=10*15-1*5=145, unde nrfactp=136; |
facturi_primite.valfaratva=10*15-1*5=145, unde nrfactp=136; |
Noi:Cant=10,pretunitar=15 Vechi:Cant=1,pretunitar=5 |
Modif cant pt nrfactp data in datefact_primite |
Update datefact _primite set cant=10, where nrfactp=136 |
facturi_primite.valfaratva=10*5-1*5=45, unde nrfactp=136; |
facturi_primite.valfaratva=10*5-1*5=45, unde nrfactp=136; |
Noi:Cant=10,pretunitar=5 Vechi:Cant=1,pretunitar=5 |
Modif pretunitar pt nrfactp data in datefact_primite |
Update datefact_primite set pretunitar=15 where nrfactp=136 |
facturi_primite.valfaratva=1*15-1*5=40, unde nrfactp=136; |
Noi:Cant=1,pretunitar=15 Vechi:Cant=1,pretunitar=5 |
create or replace trigger trg_datecom_after_row
after insert or update or delete on datecomanda
referencing new as new old as old
for each row
declare
v_pu datecomanda.punitar%type;
v_cant datecomanda.cant%type;
v_val comanda.valoare%type;
begin
pac_clfurniz.v_declans_datecom := true;
if inserting or updating then
v_pu := :new.punitar;
v_cant := :new.cant;
v_pu := v_pu * v_cant;
v_val := round( v_pu*(1+pac_clfurniz.f_produse_proctva(:new.codprodus)),-3);
update comanda set valoare= valoare+v_val where nrcomanda= :new.nrcomanda;
end if;
if deleting or updating then
v_pu := :old.punitar;
v_cant := :old.cant;
v_pu := v_pu * v_cant;
v_val := round( v_pu*pac_clfurniz.f_produse_proctva(:old.codprodus),-3);
update comanda set valoare= valoare-v_val where nrcomanda= :old.nrcomanda;
end if;
pac_clfurniz.v_declans_datecom := false;
end;
Calea1:1-2-3-4-5
Calea2:1-2-6-7-8-9
Calea3:1-2-3-6-7-8-9
Denumire caz test |
Date de intrare |
Rezultate asteptate |
Rezultate obtinute |
Observatii |
Inserarea unei inreg in datecomanda |
Insert into datecomanda (nrcomanda,liniec,codprodus,cant,umasura,punitar) values(25,1,101,10,'buc',100000) |
V_pu=100000 V_cant=10 V_pu=10*100000=1000000 V_val=round(1000000*(1+0.19),-3)=1190000 comanda.valoare= 1500000+1190000=1690000, unde nrcomanda= 25; |
V_pu=100000 V_cant=10 V_pu=10*100000=1000000 V_val=round(1000000*(1+0.19),-3)=1190000 comanda.valoare= 1500000+1190000=1690000, unde nrcomanda= 25; |
pac_clfurniz.f_produse_proctva(101)=0.19 valoare=1500000 |
Modif unei inreg in datecomanda |
Update datecomanda set nrcomanda=26,cant=15,punitar=10000 where nrcomanda=25 and liniec=1 |
V_pu=100000 V_cant=10 V_pu=10*100000=1000000 V_val=round(1000000*(1+0.19),-3)=1190000 comanda.valoare= 1500000-1190000=310000, unde nrcomanda= 25; V_pu=10000 V_cant=15 V_pu=15*10000=150000 V_val=round(150000*(1+0.19),-3)=178500 comanda.valoare= 100000+178500=278500, unde nrcomanda= 26; |
V_pu=100000 V_cant=10 V_pu=10*100000=1000000 V_val=round(1000000*(1+0.19),-3)=1190000 comanda.valoare= 1500000-1190000=310000, unde nrcomanda= 25; V_pu=10000 V_cant=15 V_pu=15*10000=150000 V_val=round(150000*(1+0.19),-3)=178500 comanda.valoare= 100000+178500=278500, unde nrcomanda= 26; |
pac_clfurniz.f_produse_proctva(101)=0.19,valoare =1500000, nrcomanda=25 pac_clfurniz.f_produse_proctva(101)=0.19,valoare =100000, nrcomanda=26 |
Stergerea unei inreg in datecomanda |
Delete from datecomanda where nrcomanda=25 and liniec=1 |
V_pu=100000 V_cant=10 V_pu=10*100000=1000000 V_val=round(1000000*(1+0.19),-3)=1190000 comanda.valoare= 1500000-1190000=310000, unde nrcomanda= 25; |
V_pu=100000 V_cant=10 V_pu=10*100000=1000000 V_val=round(1000000*(1+0.19),-3)=1190000 comanda.valoare= 1500000-1190000=310000, unde nrcomanda= 25; |
pac_clfurniz.f_produse_proctva(101)=0.19 valoare=1500000 |
create or replace trigger trg_ip_aft_row
after insert or update of restavans on incasari_plati
referencing new as new old as old
for each row
begin
if pac_clfurniz.v_declans_incf = false or pac_clfurniz.v_declans_plf = false then
if inserting and :new.restavans<>0 then
raise_application_error (-20534,'In INCASARI_PLATI nu se poate insera valoarea ramasa din avans interactiv!');
end if;
if updating then
raise_application_error (-20535,'In INCASARI_PLATI nu se poate insera valoarea ramasa din avans interactiv!');
end if;
end if;
end trg_ip_aft_row;
Calea1:1-2-3-4-5-6
Calea2:1-2-3-7-8-9-10
Calea3:1-2-3-4-7-8-9-10
Denumire caz test |
Date de intrare |
Rezultate asteptate |
Rezultate obtinute |
Observatii |
Inserarea directa a restavans in incasari_plati |
Insert into incasari_plati(restavans) values(100) |
'In INCASARI_PLATI nu se poate insera valoarea ramasa din avans interactiv! |
'In INCASARI_PLATI nu se poate insera valoarea ramasa din avans interactiv! | |
Modif interactiva a restavans |
Update incasari_plati set restavans=50 where restavans=100 |
'In INCASARI_PLATI nu se poate insera valoarea ramasa din avans interactiv! |
'In INCASARI_PLATI nu se poate insera valoarea ramasa din avans interactiv! |
Sistem informational Departament |
GESTIUNE STOCURI |
ASIGURAREA CALITATII |
GESTIUNE RESURSE UMANE |
GESTIUNE CLIENTI-FURNIZORI |
GESTIUNE PRODUCTIE |
CONTABILITATE GENERALA |
Proiectare si analiza |
Raport de necesitate↑ |
←Proceduri |
Fisa de pontaj↑ |
←Fisa anticalculatie | ||
Aprovizionare |
Raport de necesitate↑ | |||||
Marketing tehnic |
Raport de necesitate↑ |
←Proceduri |
Deviza oferta↑ Contract↑ |
Deviz tehnic↑ | ||
Asigurarea calitatii |
Raport de necesitate↑ |
←Proceduri | ||||
Laborator central |
Raport de necesitate↑ |
←Proceduri | ||||
Administrativ |
Raport de necesitate↑ | |||||
Casierie |
Raport de necesitate↑ |
←Stat de plata ←Stat de avans ←Stat concediu anticipat |
Chitanta↑ | |||
Financiar- Contabilitate |
N.R.C.D.↑ Comanda↑ ←B.C. Raport de necesitate↑ |
Contract de munca↑ Declaratie(C.M.)↑ ←Centralizatorul statelor de plata ←Borderou de carduri ←Centraliz. Imp./sal. ←Centraliz.C.A.S. ←Centraliz.C.F.S. ←Situatii statistice Rate diverse↑ Situatia echipamentelor de protectie date in folosinta↑ |
Ordin de plata↑ ←Decont T.V.A. ←Factura(aferenta vanzarilor) ←N.R.C.D. Factura(aferenta cumpararilor)↑ |
←Borderou vanzari ←Lista manopere executate |
←Contul de profit si pierdere ←Balanta de verificare |
|
Santiere |
Raport de necesitate↑ |
←Proceduri |
Fisa de pontaj↑ |
Situatie de plata↑ Borderou vanzari↑ ←Proces verbal receptie lucrare |
Centralizator consumuri↑ Bon de consum↑ | |
CTC |
Raport de necesitate↑ |
←Proceduri | ||||
Reglementari juridice |
Raport de necesitate↑ |
Contract↑ | ||||
Managementul contractelor |
Raport de necesitate↑ |
Proces verbal de compensare↑ | ||||
Personal,instruire, actionariat |
Raport de necesitate↑ | |||||
Mecanizare,energetic, metrologie |
Raport de necesitate↑ | |||||
Comercial |
Raport de necesitate↑ |
ANEXA 0 - MATRICEA
ANEXA 1 - DIAGRAMA DESCOMPUNERII FUNCTIONALE A SGC/F
ANEXA 2 - DIAGRAMA DE CONTEXT
ANEXA 3 - DIAGRAMA FLUXURILOR DE DATE DE NIVEL 0
ANEXA 4.1 - DIAGRAMA DE NIVEL 1 EVIDENTA CLIENTI/FURNIZORI
ANEXA 4.2 - DIAGRAMA DE NIVEL 1 CLIENTI
ANEXA 4.3 - DIAGRAMA DE NIVEL 1 FURNIZORI
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |