
Evidenţa plăţilor la o întreţinere la o asociaţie de locatari
SCENARIU
În cadrul acestui proiect, s-a realizat o bază de date pentru a surprinde activitatea din cadrul unei asociații de locatari.
Pentru a veni în întâmpinarea problemelor economice ale asociațiilor de locatari, eficientizarea gestiunii consumurilor, facilitarea relațiilor cu furnizorii de servicii, întocmirea rapoartelor gestiunii, asigurarea unui management financiar al asociației, se creează această bază de date. Aceasta permite calculul întreținerii pentru asociațiile de locatari, calculele necesare în urma introducerii contorizării individuale la blocuri precum și a diferitelor moduri de repartizare și calcul a cotelor de întreținere, a fondurilor (ex. reparații).
Întreținerea se înregistrează dupa codul apartamentului, fapt pentru care în momentul platei, identitatea plătitorului/locatarului (care poate deține un singur apartament) nu este importantă.
În momentul achitării întreținerii, identificatorul unic ai întreținerii va fi regăsit într-o altă entitate cu ajutorul căreia vom putea ține evidența întreținerilor achitate. Se acceptă doar plăți integrale pe luna curentă și nu se admit restanțe.
Toate valorile vor trebui contorizate astfel încât să putem vizualiza oricând care este
cheltuiala pe bloc.
DIAGRAMA ERD

COLECŢII

EXPLICATII LEGATE DE COLECŢII ŞI DOCUMENTE
Comparativ cu bazele de date relaţionale, colecţiile sunt similare tabelelor, iar documentele sunt similare înregistrărilor. Diferenţa majoră constă în faptul că fiecare înregistrare dintr-o RDBMS (Relational Database Management System) are o structură fixă (un număr de câmpuri) specificată la crearea tabelei, în timp ce documentele dintr-o colecţie pot avea câmpuri diferite, singura "schemă" necesară fiind aceea că fiecare document are un câmp "_id" care reprezintă o "cheie" unică.
Elementele de date se numesc documente. Documentele sunt grupate (memorate) în colecţii, astfel că fiecare colecţie poate avea unul sau mai multe documente.

IMPLEMENTAREA BAZEI DE DATE
În MongoDB creearea bazei date se realizează folosind comanda: use.

CREARE COLECŢII
Se vor crea colecţiile:

Pentru a ne asigura că aceste colecţii au fost create corespunzător, executam comanda: show collections.
Ca rezultat, vor fi afişate toate colecţile create de către noi în baza de date:

POPULAREA COLECŢIILOR CU DOCUMENTE
Funcţia folosită pentru a adauga documente în cadrul colecţiilor este insert. În cele ce urmează am ataşat codul aferent fiecărui document inserat în cadrul colecţiilor.
1. BLOCURI - Această colecţie prezintă scările blocurilor ce urmează a fi administrate.

2. FURNIZORI - Colecţia conţine toţi furnizorii care încasează facturi de la bloc

3. TIPURI_ÎNTREŢINERE - Aceasă colecţie prezintă toate tipurile de servicii ce pot
avea loc într-o scară şi pentru care se va solicita plata.

4. APARTAMENTE - Ține evidența tuturor apartamentelor din fiecare scară a blocului.

5. CHELTUIELI - Această colecţie este reprezentată de toate cheltuielile pe care le are
blocul administrat.

6. FACTURI - Colecţia prezintă toate facturile care sunt încasate de către furnizori.

7. LOCATARI - Această entitate conține numele proprietarului din fiecare apartament în
parte.

8. CHITANŢE - Prin această colecţie ne vom da seama dacă întreţinerea a fost plătită.
Aici se va înregistra id-ul întreţinerii care a fost plătită deja

9. ÎNTREŢINERE - Colecţia prezintă toate încasările pentru întreţinerea lunară pe
fiecare apartament.

Pentru a vizualiza toate documentele aferente colecţiilor se foloseşte comanda
db.collection.find().
Astfel pentru a vizualiza documentele colecţiei tipuri_intretinere am folosit
db.tipuri_intretinere.find().

Pentru un aspect mai uşor de citit şi analizat, am folosit următoarea comandă :
db.collection.find().pretty() .

ŞTERGEREA UNUI DOCUMENT DINTR-O COLECŢIE
A avut loc decesului domnului Buzatu Teodor, fost proprietar al ap.2 din blocul cu nr 5
(ID_APT=52), fapt pentru care trebuie modificată baza de date, prin ştergerea acestuia din
lista cu locatari.

ACTUALIZAREA DOCUMENTELOR DINTR-O COLECŢIE
Numărul persoanelor din apartamentul cu ID-ul 34 (ID_APT=34) a crescut de la 2 la 4,
odată cu nașterea gemenilor acelei familii. Acest lucru trebuie consemnat și în baza de date.

INTRODUCEREA UNOR DOCUMENTE CU STRUCTURĂ MAI DETALIATĂ
După o nouă lege, se doreşte a se ţine evidenţa datei de achiziţie a apartamentelor; Astfel la
adăugarea unui document nou, colecţia LOCATARI va avea în componenta lui un câmp
nou intitulat "data_achizitie_apt".
Ap.2 din blocul cu nr 5 (ID_APT=52) a fost cumparat de domnul Maftei Cristian, cu CNP: 1780403434563, achiziție ce a avut loc în urma decesului domnului Buzatu Teodor.

Construcţia blocului 1 a luat sfârşit, iar apartamentele din acest bloc au fost puse în vânzare. Primul apartament din acest bloc a fost achiziţionat în data de 23/06/2019, moment în care domul Tomoiagă Cătălin a devenit proprietarul apartamentului cu id-ul 11.

INDEXARE
A) INDEX SIMPLU
Adăugarea unui index simplu câmpului "denumire" al colecţiei FURNIZORI:
Ca rezultat, se va confirma crearea acestui index, iar valoarea 1 va face o ordonare în ordine
crescătoare a valorilor din câmpul "denumire":

B) INDEX COMPUS
Adăugarea unui index compus câmpurilor "id_apt" si "data_achizitie_apt" al colecţiei LOCATARI:
Ca rezultat, se va confirma crearea acestui index, iar valoarea 1 va face o ordonare în ordine
crescătoare, pe când cea de -1 va face o ordonare descrescătoare:

INTEROGĂRI
- Cu ocazia sărbătoririi Sfântului Ioan Botezătorul, asociația de locatari dorește să îi identifice pe sărbătoriți (cei ce poartă numele: Ioana, Ioan, Ionela...) pentru a le oferi o mică atenție.

- Furnizorii care provin din alte oraşe în afară de Cluj-Napoca.

- Aflaţi numărul furnizorilor cu care colaboreaza asociaţia de locatari.

- Afişaţi numărul apartamentelor care sunt locuite de mai mult de 3 persoane.

- Număraţi, iar apoi afişaţi toate apartamentele care au o întreţinere mai mică de 50
lei.

- Afişaţi toţi furnizorii care au pus la dispoziţie numărul de telefon fix, şi nu mobil
(adică numărul de telefon va începe cu caracterele 02, în loc de 07).

- Sortaţi locatarii în ordine alfabetică după nume.

- Aflaţi cea mai mare şi cea mai mică valoare a întreţinerii care s-a întregistrat până acum.

- La ce sumă de bani se ridică cheltuielile de pe cele 6 blocuri?

- Care dintre furnizori este o societate cu răspundere limitată (SRL) din Cluj-Napoca?
