Contabilitate
Proiectul subsistemului informatic pentru contabilitatea financiara la o institutie publicaProiectul subsistemului informatic pentru contabilitatea financiara la o institutie publica 1. Modelarea conceptuala 1.1. Structura bazei de date a aplicatiei
Tabelul 1 Lista principalelor tabele folosite in baza de date a
aplicatiei
Tabelul 3. Structura tabelului impact_rulaj_sold impact_rulaj_sold
Tabelul 4.
Structura tabelului
PlanConturi Modelul conceptual al datelor (M.C.D) (entitate-asociere)
Figura 1. Modelul conceptual al datelor (M.C.D) Modelarea logica Modelul logic al datelor (MLD) (relational) Document
Operatie Debiteaza Crediteaza Cont Corespondenta
Figura Modelul
logic al datelor (MLD)
Modelul logic al prelucrarilor. Activitate de contabilitate asigura: inregistrarea cronologica si sistematica a tuturor operatiilor economice; prelucrarea datelor in concordanta cu principiile si metodele contabilitatii; sintetizarea intregii activitati financiar-contabile prin intermediul instrumentelor de baza ale contabilitatii (balanta si bilantul contabil). Modelul logic de prelucrare are rolul de a preciza: frecventa de prelucrare; actorii implicati; fazele si sarcinile asociate acestora, inclusiv evenimentele si sincronizarile aferente; tipul fazelor: A (automate) si M (manuale). Pentru aceasta se pleaca de la MCP. Mai exact operatiile complexe sunt transformate in faze iar operatiile elementare sunt transformate in sarcini: Deoarece sarcinile activitatii de contabilitate sunt bine definite prin reglementarile legale in vigoare voi insista mai mult pe modelarea fizica a prelucrarilor. 3. Modelarea fizica 3.1. Principalele tabele necesare aplicatiei
3. Machetele unor tabele mai principale
Imaginea 1. Machetele unor
tabele mai principale
4. Elaborarea fisei contului Pentru a elabora fisa contului a carei macheta este data mai jos, dispunem de tabelul Evolutie_sold_cont, din imaginea alaturata, creat cu ocazia simularii transei. Totusi acest tabel nu ne ofera toate informatiile cerute de Fisa Contului. Lipsesc cele marcate in macheta Fisei Contului (tabelul 5) cu italic.
Imaginea Structura tabelului Evolutie_sold_cont
Tabelul 5.Macheta fisei contului Aceasta interogare a fost conceputa in grila QBE, dar sensul ei in SQL este urmatorul : SELECT PlanConturi.cod_cont, evolutie_sold_cont.Nr_crt, evolutie_sold_cont.data_inreg, evolutie_sold_cont.Documentul, evolutie_sold_cont.Explicatii, evolutie_sold_cont.Cont_Corespondent, evolutie_sold_cont.Valoare_cont_debit, evolutie_sold_cont.Valoare_cont_credit, PlanConturi.tip_sold_init, PlanConturi.sold_init, PlanConturi.den_cont, PlanConturi.Tip_sold, PlanConturi.sold, PlanConturi.total_suma_debit, PlanConturi.total_suma_credit, PlanConturi.Sold_initial_debit, PlanConturi.Sold_initial_credit, evolutie_sold_cont.sold_debit, evolutie_sold_cont.sold_credit FROM PlanConturi INNER JOIN evolutie_sold_cont ON PlanConturi.cod_cont = evolutie_sold_cont.cont GROUP BY PlanConturi.cod_cont, evolutie_sold_cont.Nr_crt, evolutie_sold_cont.data_inreg, evolutie_sold_cont.Documentul, evolutie_sold_cont.Explicatii, evolutie_sold_cont.Cont_Corespondent, evolutie_sold_cont.Valoare_cont_debit, evolutie_sold_cont.Valoare_cont_credit, PlanConturi.tip_sold_init, PlanConturi.sold_init, PlanConturi.den_cont, PlanConturi.Tip_sold, PlanConturi.sold, PlanConturi.total_suma_debit, PlanConturi.total_suma_credit, PlanConturi.Sold_initial_debit, PlanConturi.Sold_initial_credit, evolutie_sold_cont.sold_debit, evolutie_sold_cont.sold_credit HAVING (((PlanConturi.cod_cont)=[Codul contului])) ORDER BY PlanConturi.cod_cont; 5. Obtinerea balantei de verificare Macheta balantei de verificare este cea de mai jos. Institutia BALANTA DE VERIFICARE
PENTRU CONTURILE SINTETICE LA 31.1 2009 Director, Contabil sef, Intocmit,
Tabelul 6. Macheta balantei de verificare Pentru Balanta sintetica nu se poate folosi o interogare pe tabelele existente, din cauza unor conturi (cum ar fi cele analitice sau cele sintetice de rang II) ale caror tranzactii trebuie sa figureze in balanta, dar valorile acestor tranzactii nu participa la calculul totalului de grupa, deoarece ele au fost deja incluse in soldurile si respectiv rulajele conturilor de rang superior (adica in contul sintetic desfasurat pe conturi analitice, respectiv in conturi sintetice de rang I - cazul contului 442, desfasurate pe conturi sintetice de rang II, de ex. 4424). De aceea pentru Balanta sintetica va fi necesar un program care sa creeze tabelul Balanta_tabel. Pe acest tabel se va aplica interogarea cu parametru numita Balanta sintetica care va fi apoi apelata de raportul cu acelasi nume. Tabelul Balanta_tabel se va obtine din tabelul Planconturi dupa ce acesta a fost actualizat complet pentru luna care s-a incheiat. Structura tabelelor Conturi_radacin, Tipuri_de_coduri si Balanta_tabel, se poate vedea in imaginile 5 - 7.
6. Conceptia de elaborare a fisei carte mare sah Macheta fisei carte mare sah, care se intocmeste pentru fiecare cont sintetic, separat pe debit si separat pe credit, arata in principiu ca in tabelul 7. de mai jos, numai ca numarul conturilor coresponedente fiind foarte mare (adeseori peste 20), este neceasr ca tabelul sa fie editat pe mai multe pagini, fiecare pagina continand grupe de cate 6-7 conturi Cu alte cuvinte tabelul se rupe pe verticala, avand grija ca pe fiecare foaie de continuare sa fie prezente primele trei coloane de pe prima foaie, urmate de conturile care nu au incaput pe foile precedente.
Tabelul 7. Macheta
fisei carte mare sah Din analiza machetei de mai sus se poate deduce ca pentru obtinerea unor tabele apropiate de structura fisei carte mare sah (sa le spunem de aici incolo sah_debit si respectiv sah_credit) ar trebui sa dispunem de conturile corespondente fiecarui cont sintetic, informatie care in baza noastra de date, se gaseste initial in tabelul Functionare cont_debit, respectiv credit. Machetele acestor tabele sunt foarte simple. De exemplu tabelul Functionare cont_debit contine campurile cont si cont relatie, dar aceasta macheta nu ne ajuta in rezolvarea problemei formulate mai sus. De aceea din tabelele Functionare cont_debit, respectiv Functionare cont_credit au fost derivate alte doua tabele numite Matrice_debit, respectiv Matrice_credit. Machetele acestor tabele sunt de forma: Cod_cont_sintetic, nr_coduri_cumulate, cont1, cont 2 . cont20. Se deduce de aici ca fiecare cont sintetic ocupa in aceasta matrice un singur rand. Dispunand de tabelele Matrice_debit si Matrice_credit, procedura logica de obtinere a tabelelor Sah_debit si Sah_credit este urmatoarea: Subroutine. Matrice_debit Adaos_jurnal Subroutine Matrice_credit Adaos_jurnal
Figura 4. Procedura
logica de obtinere a tabelelor Sah_debit si Sah_credit (Sa remarcam ca noi nu vom genera aceste tabele pentru fiecare fisa carte mare sah, ci generam un tabel Sah_debit si unul Sah_credit pentru toate conturile sintetice si cand se cere fisa Carte mare sah a unui cont, doar selectam din tabelul corespunzator, articolele care se refera la contul respectiv). In continuare va fi nnecesar sa se formuleze cate o interogare cu parametru pentru fiecare din tabelele sah_debit si sah_credit (parametru fiind codul contului pentru care dorim fisa carte mare sah). De fapt nu vom formula cate o interogare, ci cate trei pentru ca asa cum am specificat la inceput, o fisa carte mare sah trebuie rupta, in trei fise complementare. completa unele informatii din antetul fisei. Din continutul interogarii descris mai sus, rezulta ca pentru a rula acea intrerogare mai avem nevoie si de tabelul Matrice_rulaj_debit si respectiv de Matrice_rulaj_credit. In continuare pe fiecare din aceste interogari se vor crea rapoarte. Incepand cu a doua interogare, campul Suma lipseste si in locul lui va mai trece un cont corespondent, astfel ca o fisa va contine cate 7 conturi corespondente. In meniu, va trebui sa avem optiuni pentru fise debit si fise credit si apoi pentru fiecare din cele trei fragmente in care se poate diviza o fisa carte mare sah. 7. Conceptia de elaborare a bilantului 7.1. Prezentarea solutiei propuse pentru elaborarea bilantului Din analiza machetei bilantului se poate vedea ca datele pentru acest document sunt disponibile in tabelul PlanConturi, actualizat cu ultima transa din anul care s-a incheiat. Totusi dat fiind continutul complex al bilantului el nu poate fi obtinut cu o interogare privitoare la PlanConturi, ci va trebui sa concepem o procedura logica mai complexa. In aceasta procedura, piesa cea mai importanta este un tabel numit Structura_bilant ce va contine cate un articol pentru fiecare rand din document. Macheta tabelului Structura_bilant este urmatoarea:
Tabelul Macheta tabelului Structura_bilant Unde: - Denumire categorie se refera la categorii de activ sau de pasiv (de ex. Imobilizari necorporale); - Continut se refera la continutul campurilor cont1, cont2, s.a.m.d. pana la cont 20, care reprezinta locul de unde luam informatiile pentru a fi prelucrate: acesta poate fi un cont cu semn, sau un rand din bilant ( a se vedea indicatiile cu privire la conturi din macheta bilantului). De ex. pentru linia I. ACTIVE IMOBILIZATE _ TOTAL se face referire la randurile 1-3 a caror continut se aduna pentru a se obtine totalul; - Tip sold poate lua valoarea 1 daca soldul este pe debit si 2 daca este pe credit. Din macheta bilantului se poate constata ca din tabelul Structura_bilant nu va participa in raportul numit Bilant, decat coloanele Denumire categorie si Nr_rand. Restul informatiilor sunt folosite pentru a calcula soldurile ce vor fi stocate pe fiecare rand, din coloanele Inceputul anului si Sfarsitul anului, care vor ajunge in final in coloanele Precedent si Incheiat din tabelul Solduri_bilant. Pentru completarea acestui tabel programul va aduce solduri din Planul de conturi (in cazul conturilor) sau din randurile bilantului, dupa cum in tabelul structura_bilant este specificat un cont sau un rand. Daca in tabelul Structura_bilant, la continut este specificat rand, atunci se cauta in tabelul Solduri_bilant, la randul specificat in acelasi tabel.. Dupa aceea se va rula interogarea Asamblez_tabel_bilant care ia date din tabelele Structura_bilant, Solduri_bilant si Societatea. Interogarea va produce un tabel cu aspect foarte apropiat de cel al formatului cerut pentru bilant. Pe acest tabel se poate rula raportul Bilantul, care este folosit pentru a vizualiza si pentru a tipari bilantul. Daca este cazul, operatiunile de mai sus, pot fi precedate de actualizarea structurii bilantului si a datelor din tabelul Societatea (altele decat data validarii transei) care sunt folosite pentru antetul bilantului. Schema procedurii logice utilizate pentru a elabora bilantul
Structura bilant Formular actualizare Societatea Formular actualizare Subprg Planconturi Actualiz_sold_subclase Solduri_subclase Planconturi Subprg Solduri_subclase Actualiz_sold_bilant Solduri_bilant Structura_bilant Subprg Solduri Actualiz_datei_ultimei_transe Societatea Structura_bilant Intrg: make-table Solduri_bilant Asamblez_tabel_bilant Tabelul_bilant Societatea Raport Tabelul_bilant Bilantul Bilantul
Figura 3. Schema procedurii logice utilizate pentru a
elabora bilantul 8. Conceptia de elaborare a contului de profit si pierdere In aceasta procedura, piesa cea mai importanta este un tabel numit Structura_profit ce va contine cate un articol pentru fiecare rand din document. Pentru actualizarea tabelului Structura_profit acestuia i se va asocia un formular. Macheta tabelului Structura_profit este urmatoarea:
Semnificatia coloanelor acestui tabel este similara cu cea a coloanelor din tabelul Structura_bilant, dar se refera la macheta contului de profit si pierdere si nu la cea a bilantului Schema procedurii logice utilizate pentru a elabora contul de profit si pierdere este asemanatoare cu cea conceputa pentru a elabora bilantul cu mentiunea ca in loc de tabelul structura bilant schema contine tabelul structura profit, iar ultimele doua randuri din schema arata ca cele de mai jos.
|