5. Baza de date a Creative CRM, informatii tehnice pentru programatori
account_log
Tine un jurnal al logarilor si delogarilor, reusite sau nereusite. Poate ajuta la identificarea unor probleme de securitate (incercari de autentificare neautorizate, oferind si ip-ul request-ului care a incercat).

account_permission
Tine cele sapte permisiuni pentru staff.

account_role
Admin-ul creaza roluri pentru staff. Acestora le asigneaza permisiunile din tabelul de mai sus.

account_role_permission
Este tabelul pivot intre roluri si permisiuni

admin
Tine userii de tip admin

admin_pending
Cand un user nou isi face cont, acesta va deveni un admin in asteptare care va aparea in interfata superadmin-ului pentru acceptare. Acesta il poate si sterge, daca nu este binevenit.

calendar_event

change_crm_hours
Tine schimbarile intervalelor de timp pentru task-uri. Acestea pot fi facute de staff autorizat sau de admin. Cele facute de admin, apar in raportul Admin/Reports/Hours changed si sunt facute in Admin/Team/Change hours.
ci_sessions
Tine sesiunile

client
Tine userii de tip client.

company
Companiile nu sunt useri. Pot fi asociate cu useri de tip client

currency
Tine valutele


email_settings
Setarile pentru email

email_template
Diverse modele de email

expense_category

financiar

language
Tine in fiecare coloana o limba iar pe fiecare rand un cuvant, in limba coloanei. Aici se pot adauga traduceri de catre superadmin.

legal_holiday
Fiecare admin poate introduce in crm sarbatorile sale legale. Acestea, impreuna cu staff vacations (zilele de concediu) si cu zilele lucratoare determina target-ul de lucru pentru staff.

message
Impreuna cu message_thread fac parte din sistemul de chat cu mesaje si fisiere. Un message thread poate avea mai multe mesaje. Cheia este message_thread_code.

message_thread

note
Pastreaza toate notele personale ale user-ilor de orice fel.

notification_log
Exista un ‘cron job’, un program care ruleaza automat in fiecare noapte la ora 1 si care verifica daca sunt indeplinite conditiile temporale pentru a trimite notificarea ‘Full report’ in format pdf catre adrese de mail ce apartin tuturor categoriilor de useri, la alegere. Sunt 3 tipuri de notificari
- la doua zile (two days) - Luni, Miercuri, Vineri
- saptamanale (weekly)
- lunare (monthly)
Spre exemplu, daca astazi e Marti si nu suntem in data de 1 a lunii, cronul nu va face nimic, pentru ca nu sunt indeplininte conditiile temporale. Dar maine, la ora unu noaptea, cron-ul se va uita in tabelul ‘project’ pe coloana notification, va grupa proiectele pe intervale de timp si pe adrese de email si va trimite raportul. Tot ceea ce se trimite se inregistreaza in ‘notification_log’.

no_history
Atunci cand se editeaza un proiect, campul ‘No.hours’ (care participa la formula venitului realizat pe un task) permite modificari care pot fi salvate cu optiunea ‘Save’ (No.hours) si apoi vizualizate cu ‘View History’. Acest istoric se memoreaza in tabelul ‘no_history’.


pauza_crm
Tine toate pauzele luate de staff pe task-urile la care lucreaza.

payment

project
Tine proiectele clientilor. Coloana notification tine in format json setarile pentru notificari la 2 zile, saptamanale, lunare cu raportul ‘Full report’.

project_file
In ‘Project room’ exista meniul ‘File’ prin care putem atasa fisiere la proiecte. Evidenta acestor fisiere se tine in ‘project_file’

project_message
Tine toate mesajele din chat-ul pe proiect

project_milestone
Tine transele de plata pe proiect.

project_staff
Este tabelul pivot care tine ce staff lucreaza la proiecte

project_task
Memoreaza toate task-urile proiectelor

project_timesheet
Un proiect are task-uri. La un task se lucreaza in intervale de timp, definite cu start si stop de catre staff. Intre ele pot fi pauze. Aceste intervale se tin in ‘project_timesheet’.

project_timesheet_edit
In raportul ‘Full report’ se pot edita campurile ‘Discount’, ‘Date’ si ‘Hour’. Modificarile se tin aici.

quote
Tine insemnarile pe proiect. Pot fi si fisiere.

schedule
Nefolosit
setting
Tine diverse checkbox-uri care se doresc memorate in crm, cum ar fi ‘By day’ si ‘Spline’ in graficele din rapoarte, ‘Project status’ si ‘Staff account status’ pentru proiectele active sau toate si staff-ul activ sau tot, etc.

settings
Tine setarile globale ale crm:


staff
Tine toti angajatii, organizati pe admin (fiecare admin are staff-ii lui). Campul ‘target_percent’ va determina pragul pentru raportul ce se trimite staff pe email cu task-urile dintr-un interval selectat, organizat pe zile. Aici ce s-a lucrat peste prag este colorat la total cu verde si ce este sub prag cu rosu. 100% inseamna 8 ore . Un staff care are in contract 4 ore de lucru pe zi, aici va avea 50%.
Coloana ‘max_staff_uncompleted_tasks’ este numarul maxim de task-uri active pe care le poate avea la un moment dat un staff. Acest numar este completat de admin pentru fiecare staff in parte, fie la creare sau prin editare staff. Daca un staff a depasit acest numar, nu mai poate crea task-uri pe numele lui. (Si nici altcineva, mai putin admin-ul care poate)

super_admin
Pot fi unul sau mai multi superadmini. Acestia gestioneaza admin-ii si relatiile dintre ei.

team_task
Nefunctional
team_task_file
Nefunctional
Ticket
Un tichet suport este o notificare creata de un client referitoare la o problema intr-un proiect, trimisa admin-ului care gaseste un staff sa o rezolve.

ticket_message
Pe un tichet se comunica prin mesaje si fisiere. Acestea se memoreaza in acest tabel.

timer_starting
Task-ul curent este tinut aici. De cate ori este intrerupt, se memoreaza ora curenta in campul end_starting, si se modifica ‘timer_starting’ astfel incat task-ul sa para continuu si sa tina o singura valoare pentru toata perioada lucrata. Cand se inchide task-ul (din x) acest task se sterge de aici si este transferat in tabelul timesheets.

timer_tmp
todo
Fiecare user are in coltul din dreapta sus, un link ce deschide fereastra ‘To do’ in care-si treaca unele notite personale.

vacation
Acest tabel memoreaza zilele de concediu de odihna, medical sau orice alte zile libere stabilite de admin. Zilele de concediu (‘co’) le poate stabili atat staff-ul, personal (daca are permisiunea), cat si admin-ul.
Spre exemplu, la inceput de an, admin-ul acorda permisiunea staff sa-si seteze singur zilele de ‘co’. Fiecare staff, dupa ce seteaza, va bifa optiunea ‘Finish’ si-si va anula dreptul de editare pana cand admin-ul i-l da din nou.
Admin-ul poate acorda permisiunea la toti staff-ii odata, sau individual (totusi nu poate retragea permisiunea la toti staff odata).

vacation_attribute
Fiecarui staff i se pot modifica pentru un an, culorile cu care sunt afisate zilele de concediu (atat font-ul cat si fond-ul), precum si numarul de zile de concediu la care are dreptul in mod legal (functie de vechime, varsta, legislatie, etc.).
Campul vacation_rights tine tocmai acest numar. Poate in anul urmator se schimba intrand in alta categorie de varsta. In mod implicit, la inceput de an, aceste setari sunt copiate din anul anterior (mai degraba din ultimul an gasit in baza de date, cel mai apropiat, care are setari)


























