Дипломная работа: Автоматизация процесса управления взаимоотношениями с клиентами в компании "Фаворит"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
122
$query="SELECT ID, FULLNAME, EMAIL FROM table_clients";
if($filters[0]!="") $query.=" WHERE ".$filters[0];
if($filters[1]!="")
{
if($filters[0]!="") $query.=" OR ";
else $query.=" WHERE ";
$query.=" (SELECT COUNT(*) FROM table_clients_employees
WHERE ID_CLIENT=table_clients.ID";
if($filters[1]!="") $query.=" AND ".$filters[1];
$query.=")>0";
}
$parent_ids=array();
//echo $query;
if($ds->Open($query) && $ds->RowCount>0)
{
do
{
$parent_ids[]=$ds->GetFieldValue("ID");
$result["t1_".$ds->GetFieldValue("ID")]=array("NAME"=>$ds-
>GetFieldValue("FULLNAME"),
"MAIL"=>$ds->GetFieldValue("EMAIL"), "CHILDREN"=>array());
}while($ds->NextRow());
}
if(sizeof($parent_ids) > 0)
{
$ds = new ODBDataSet("", $this, GetConnection("MainDBConnection"));
$query="SELECT ID, NAME, EMAIL, ID_CLIENT FROM
table_clients_employees
WHERE ID_CLIENT IN (0,".implode(",",$parent_ids).")";
if($filters[1]!="") $query.=" AND ".$filters[1];
if($ds->Open($query) && $ds->RowCount>0)
{
do
{
$result["t1_".$ds->GetFieldValue("ID_CLIENT")]["CHILDREN"]
[$ds->GetFieldValue("ID")]=array("NAME"=>$ds-
>GetFieldValue("NAME"),
"MAIL"=>$ds->GetFieldValue("EMAIL"), "CHILDREN"=>array());
}while($ds->NextRow());
}
}
return $result;
}
public function ButtonCancel_OnClick()
{
$this->Close();
}
public function ButtonOk_OnClick()
123
{
$this->Close();
if($this->ReturnToEdit!=null)
{
$edit=$this->ReturnToEdit;
$this->Parent->$edit->Value=$this->GetRecipients();
}
}
/**
* Метод, возвращающий массив получателей
*
* @return array $result[ID]=>array("NAME"=>$name, "MAIL"=>$email,
"CHILDREN"=>...)
*/
public function FillCheckBoxByFields()
{
$result=array();
$ds = new ODBDataSet("", $this, GetConnection("MainDBConnection"));
$query="SELECT ID, ".$this->MailField.($this->NameField!=""?", ".$this-
>NameField:"")."
FROM ".$this->UsersTable;
$parent_ids=array();
if($ds->Open($query) && $ds->RowCount>0)
{
do
{
$parent_ids[]=$ds->GetFieldValue("ID");
$result[$ds->GetFieldValue("ID")]=
array("NAME"=>$ds->GetFieldValue($this->NameField),
"MAIL"=>$ds->GetFieldValue($this->MailField),
"CHILDREN"=>array());
}while($ds->NextRow());
}
return $result;
}
public function CheckAll()
{
$this->CheckListBox_RECIPIENTS->CheckAll(null, $this->CB_ALL-
>Value);
AddToChangedComponents($this->CheckListBox_RECIPIENTS);
}
/**
* Метод получения списка выбранных пользователей
*
* @return string адреса через запятую
*
*/
public function GetRecipients()
124
{
$result=array();
$cnt=count($this->CheckListBox_RECIPIENTS->AllNodes);
for($i=0; $i<$cnt; $i++)
{
if(isset($this->CheckListBox_RECIPIENTS->AllNodes[$i]) &&
$this->CheckListBox_RECIPIENTS->AllNodes[$i]->Object[1])
{
$result[]=$this->CheckListBox_RECIPIENTS->AllNodes[$i]->Text;
}
}
$result=implode(", ", $result);
$result=str_replace("&lt;", "<", $result);
$result=str_replace("&gt;", ">", $result);
return $result;
}
}
?>
125
Приложение 8
Схема работы модуля работы с группами пользователей
126
Приложение 9
Пользователь в процессе перехода на веб-страницу CRM-системы видит
форму авторизации, представленную на Рис. 2.3. В данной форме пользователю
требуется произвести ввод логина и пароля от собственной учетной записи.
Рис. 2.3 Форма «Авторизация»
При условии корректного введения логина и пароля системой определяются
для данного пользователя права доступа к разным ее модулям и отображается форма
«Рабочее пространство», которая продемонстрирована на Рис. 2.4.
Рис. 2.4 Форма «Рабочее пространство»
На форме слева расположено меню для работы с разными модулями системы.
Открытие всех новых форм производится во внутреннем пространстве указанной
формы справа от меню. В верхнем правом углу расположена кнопка для выхода из
системы.
Главное меню рассматриваемой формы включает в себя пункты, отображение
которых варьируется исходя из существующих у пользователя прав доступа:
1. администрирование: пользователи; группы пользователей.
2. справочники: атрибуты контрагентов; типы контрагентов; категории
обсуждений; шаблоны проектов; статусы задач; категории заметок.
3. база контрагентов: контрагенты.
Источник: https://baza.diplomsite.ru/previewfile/2143