bgerp/bgerp — Issue #139: email_Addresses - връзка между обекти (визитки) и имейл адреси
Author: milengg
Created: 2011-12-10 10:58:09+00:00
State: open
Labels: email, Задача

Да се направи модел със следните полета:

`email` - `type_Email` - адрес
`classId` - `type_Class` - клас на притежателя
`objectId` - `int` - id на притежателя

трите полета заедно са уникални
има индекс по `email`

`plg_Modified`

Целта е този модел да съдържа актуална информация, кой е-мейл адрес на коя визитка (или друг обект в бъдеще) отговаря.

Данните в този модел се попълват след запис във визитника. От визитките се отделят е-мейл адресите и за всеки адрес се прави запис в `email_Addresses`. Има поне следните особености:

1. Когато се записва визитка на лице, и има попълнен служебен имейл, ако има попълнена фирма, то имейла се записва на фирмата, а не на лицето. Ако няма фирма - служебният(ите) имейл(и) се записват на лицето;

2. Когато се изтрива/оттегля визитка, се махат записите за нея в този модел;

3. Моделът предоставя метод `email_Addresses::getObjectByEmail($email)`, който връща последно модифицирания обект, който притежава този имейл адрес.

4. Моделът трябва така да се направи, че да може лесно да се изнесат операциите по попълването му, в момента преди деструктуриране на скрипта. Това означава да се отдели лигиката за попълването му в отделен метод `email_Addresses::addEmail($email, $classId, $objectId)`

5. Изисква се да се направят промени в `crm_Companies` и `crm_Persons`, така че да се попълва този модел.

6. Достъп до модела ще има само `admin` и `ceo`.

Целта на този модел е да се използва при рутирането на писмата, съгласно правило #6 тук: https://github.com/bgerp/bgerp/issues/108