- •Введение
- •Постановка задачи
- •1.2 Задачи и функции менеджера по продажам
- •1.3 Формирование технического задания.
- •2. Алгоритмы и модели данных.
- •2.1 Описание документооборота обеспечивающего бизнес-процесс «работа отдела продаж»
- •2.2 Mind-карта процесса. Модель базы данных.
- •3. Обзор существующих систем по, применяемых для решения аналогичных задач
- •1С:Предприятие 8. Crm проф
- •4. Описание пользовательского интерфейса
- •. Добавление нового клиента
- •6. Экономическое обоснование
- •Расчёт эксплуатационных расходов.
- •Заключение
- •Список используемой литературы
- •Листинг web-ресурса.
Заключение
В данном курсовом проекте был предложен вариант автоматизированного рабочего места для организации эффективной работы с клиентами. Автоматизация проводилась с помощью создания АИС на основе базы данных, которая была разработана с помощью программного продукта MySQL и PHP.
По завершению разработки программного продукта можно с высокой степенью достоверности судить об эффективности использования программных средств в управленческой деятельности. Причем специализированная разработка программ под конкретную задачу дает ряд преимуществ по сравнению с применением универсальных средств. Прежде всего, эти преимущества характеризуются гибкостью и полным удовлетворением требованиям к системе.
Внедрение данного программного продукта снижает затраты времени на обработку информации, повышает эффективность, производительность и привлекательность выполняемых специалистом работ, за счет автоматизации поиска информации о клиентах и систематизации информации. При этом снижается трудоемкость выполняемых операций и затраты. Программа «Training-CRM» позволит решить ряд проблем связанных с обработкой и передачей информации между подразделениями компании, повысит быстродействие выполняемых работ.
Список используемой литературы
-
Ратшиллер Т., Геркен Т. PHP4: разработка Web-приложений. - СПб: Питер, 2008. - 384 с.
-
Проектирование экономических информационных систем: Учебник/Г.Н. Смирнова, А.А., Сорокин, Ю.Ф. Тельнов; Под ред. Ю.Ф. Тельнова. – М.: Финансы и статистика, 2006. – 512с.
-
Титоренко, Г.А. Автоматизированные информационные технологии в экономике, М.: Компьютер, 2007 г.
-
Томсон Л., Веллинг Л. Разработка Web-приложений на PHP и MySQL. - К.: "ДиаСофт", 2007. - 672 с.
-
Яргер Р., Риз Дж., Кинг Т. MySQL и mSQL. Базы данных для небольших предприятий и Интернета. - СПб: Символ-Плюс, 2009 - 560 с.
Приложения
-
Листинг web-ресурса.
-
index.php
-
<?php
if (! isset($_GET['action'])) $_GET['action'] = "";
include("db.php");
include("auth.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link href="css/style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<table align="center" border="0" cellpadding="0" cellspacing="0" class="tbl1" width="795">
<tr>
<td colspan="4"></td>
</tr>
<tr valign="top">
<td width="60%" height="91"><img src="images/single_pixel.gif" width="0" height="93"></td>
<td width="40%" height="91" colspan="3" valign="top" align="center">
</td>
</tr>
<tr>
<td colspan="3" >
<tr>
<td valign="top" colspan="4">
<table width="100%" border="0" cellspacing="15">
<tr>
<td width="22%" valign="top"><img src="images/single_pixel.gif" width="60" height="1"><br>
<?php
if ($user_id!="")
echo'
<div id="navcontainer">
<ul id="navlist">
<li><a href="/index.php?action=client_add_edit&record_id=-1">Добавить нового клиента</a></li>
<li><a href="/index.php?action=client_info">Информация о клиентах</a></li>
<li><a href="/index.php?action=client_control">Управление клиентами</a></li>
<li> </li>
<li><a href="/index.php?action=contract_add">Добавить новый договор</a></li>
<li><a href="/index.php?action=contract_info">Информация о договорах</a></li>
<li><a href="/index.php?action=contract_control">Управление договорами</a></li>
<li> </li>
<li><a href="/index.php?action=logout">Выйти из системы</a></li>
</ul>
</div>
';
?>
</td>
<td width="78%">
<?php
if ($user_id == "")
{
echo $auth_msg;
include("auth.htm");
} else {
switch ($_GET['action'])
{
case "client_add_edit":
include("client_add_edit.php");
break;
case "client_add_edit_run":
include "client_add_edit_run.php";
break;
case "client_info":
include "client_info.php";
break;
case "client_control":
include "client_control.php";
break;
case "client_control_run":
include "client_control_run.php";
break;
case "contract_info":
include "contract_info.php";
break;
//
case "contract_add":
include("contract_add.php");
break;
case "contract_add_run":
include "contract_add_run.php";
break;
case "contract_info":
include "contract_info.php";
break;
case "contract_control_run":
include "contract_control_run.php";
break;
case "contract_control":
include "contract_control.php";
break;
}
}
?>
<h3> </h3>
<p></p>
<p></p>
</td>
</tr>
</table>
<h2> </h2>
</td>
</tr>
</table>
<!-- End of footer div -->
<div style="font-size: 0.8em; text-align: center; margin-top: 1.0em; margin-bottom: 1.0em;">БГТУ-2011</div>
</body>
</html>
3.2. db.php
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "CRM";
$dbc = mysql_connect($mysql_hostname, $mysql_user, $mysql_password);
if (!$dbc) die("Возникли проблемы при подключении. ".mysql_error());
$dbs = mysql_select_db($mysql_database, $dbc);
if (!$dbs) die("БД не найдена. ".mysql_error());
?>
-
auth.htm
<h2>Добро пожаловать в систему training-CRM!</h2>
<p>Для продолжения работы войдите в систему training-CRM</p>
<h3>Введите логин и пароль </h3>
<form name="login_form" method="post" action="index.php?action=login" class="vhod">
<label for="login">Логин</label>
<input type="password" name="login" id="login"/>
<span style="padding:0px 80px;">
<label for="password">Пароль</label>
<input type="password" name="password" id="password"/>
<br><br>
<input type="submit" value="Войти"/>
</span>
</form>
-
auth.php
<?php
$auth_msg="";
$user_id="";
switch ($_GET['action'])
{
case "login": //вход в систему
if (session_id() == "") session_start();
if ( ! isset($_SESSION['user_id']))
{
$login = mysql_real_escape_string($_POST['login']);
$password = mysql_real_escape_string($_POST['password']);
$result = mysql_query("SELECT idManager, password FROM Manager WHERE login='".$login."' LIMIT 1");
if ($row = mysql_fetch_assoc($result))
{
if($password == ($row['password']))
{
$_SESSION['user_id'] = $row['idManager'];
$user_id = $_SESSION['user_id'];
} else {
$auth_msg = "Неправильный пароль";
session_destroy();
}
} else {
$auth_msg = "Неправильный логин";
session_destroy();
}
} else {
$user_id = $_SESSION['user_id'];
}
break;
case "logout": //выход из системы
session_start(); //возобновляем сессию
session_destroy(); // и удаляем ее
break;
default:
if (session_id() == "") session_start();
if (isset($_SESSION['user_id'])) $user_id = $_SESSION['user_id'];
break;
}
// print_r($_SESSION);echo "/; print_r($_REQUEST);
?>
-
client_add_edit.php
<?php
$record_id = $_REQUEST['record_id'];
echo '<form action="index.php?action=client_add_edit_run&record_id='. $record_id .'" method="post" name="form1">';
if ($record_id == -1) {
echo '<h2>Заполните форму, чтобы добавить нового клиента</h2>';
$row = array();
$row['Org_name'] = "";
$row['Deyatelnost'] = "";
$row['FIO_KL'] = "";
$row['E-mail'] = "";
$row['Phone'] = "";
$row['Adress'] = "";
$row['Dopolnitelno'] = "";
} else {
echo '<h2>Редактирование клиента</h2>';
$query = "SELECT Organization.*, Kontaktnye_litca.*
FROM Organization
INNER JOIN Kontaktnye_litca ON (Organization.Kontaktnye_litca_idKontaktnye_litca = Kontaktnye_litca.idKontaktnye_litca)
WHERE (Organization.idOrganization = ". $record_id .")";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
}
echo'
<h3>
<table width="100%" border="1" class="shap2">
<tr>
<td colspan="2" class="shap1">Общие сведения об организации </td>
</tr>
<tr>
<td width="50%">
<label for="orgname" class="shap2">Название организации</label>
<input type="text" name="orgname" id="orgname" value = "'. $row['Org_name'] .'">
</td>
<td width="50%">
<label for="dejatelnost"> Вид деятельности</label>
<input name="dejatelnost" type="text" class="shap2" id="dejatelnost" value = "'. $row['Deyatelnost'] .'">
</td>
</tr>
<tr>
<td colspan="2" class="shap1">Контактная информация</td>
</tr>
<tr>
<td>
<label for="Konliz">ФИО контактного лица</label>
<input type="text" name="Konliz" id="Konliz" value = "'. $row['FIO_KL'] .'">
</td>
<td>
<label for="dolzhnost">Должность КЛ<br>
</label>
<input type="text" name="dolzhnost" id="dolzhnost" value = "'. $row['Dolzhnost'] .'">
</td>
</tr>
<tr>
<td height="56">
<p>
<label for="e-mail">E-mail<br>
</label>
<input type="text" name="e-mail" id="e-mail" value = "'. $row['E-mail'] .'">
</p>
</td>
<td>
<label for="phone">Телефон<br>
</label>
<input type="text" name="phone" id="phone" value = "'. $row['Phone'] .'">
</td>
</tr>
<tr>
<td colspan="2">
<label for="adress">Адрес</label>
<input type="text" name="adress" id="adress" value = "'. $row['Adress'] .'">
</td>
</tr>
<tr>
<td colspan="2" class="shap1">Дополнительная информация</td>
</tr>
<tr>
<td colspan="2">
<label for="drugaja"></label>
<textarea name="drugaja" id="drugaja" cols="45" rows="5">'. $row['Dopolnitelno'] .'</textarea>
</form></td>
</tr>
<tr>
<td colspan="2">
<input name="zapisat" type="submit" class="vhod" id="zapisat" value="Сохранить">
</td>
</tr>
</table>
</h3>
</form>';
?>
-
client_add_edit_run.php
<?
$record_id = $_GET['record_id'];
if ($record_id == -1)
{
if ($row = mysql_fetch_array(mysql_query("SELECT MAX(idKontaktnye_litca) AS MaxId FROM Kontaktnye_litca")))
$id_kon = $row['MaxId'] + 1;
else
$id_kon = 1;
$result = mysql_query(
"INSERT INTO Kontaktnye_litca (idKontaktnye_litca, FIO_KL ,Phone, `E-mail`, Dolzhnost)
VALUES ('".$id_kon."',
'".$_POST['Konliz']."',
'".$_POST['phone']."',
'".$_POST['e-mail']."',
'".$_POST['dolzhnost']."')");
if ($result)
{
$result = mysql_query(
"INSERT INTO Organization (Org_name, Adress, Deyatelnost, Dopolnitelno, Manager_idManager, Kontaktnye_litca_idKontaktnye_litca)
VALUES ('".$_POST['orgname']."',
'".$_POST['adress']."',
'".$_POST['dejatelnost']."',
'".$_POST['drugaja']."',
'".$user_id."',
'".$id_kon."')");
if ($result)
echo "<center><br>Организация <strong>".$_POST['orgname']." </strong> добавлен!</center>";
}
} else {
$result = mysql_query("SELECT Kontaktnye_litca_idKontaktnye_litca FROM Organization WHERE idOrganization = ".$record_id." LIMIT 1");
if ($result)
{
if ($row = mysql_fetch_array($result));
{
$id_kon = $row['Kontaktnye_litca_idKontaktnye_litca'];
}
$result = mysql_query(
"UPDATE Kontaktnye_litca SET
FIO_KL = '". $_POST['Konliz'] ."',
Phone = '".$_POST['phone']."',
`E-mail` = '".$_POST['e-mail']."',
Dolzhnost = '".$_POST['dolzhnost']."'
WHERE (idKontaktnye_litca = '".$id_kon."') LIMIT 1");
if ($result)
{
$result = mysql_query(
"UPDATE Organization SET
Org_name = '". $_POST['orgname'] ."',
Adress = '".$_POST['adress']."',
Deyatelnost = '".$_POST['dejatelnost']."',
Dopolnitelno = '".$_POST['drugaja']."',
Manager_idManager = '".$user_id."'
WHERE (idOrganization = '".$record_id."') LIMIT 1");
if ($result) echo "<center><br>Изменения сохранены</center>";
}
}
}
if ( ! $result) die('MySQL error:'.mysql_error());
?>
-
client_info.php
<div style="overflow:auto; width:1000px; height:400px">
<h3>
<table width="100%" border="1" class="infkl">
<tr>
<td colspan="10" class="shap1">Информация о клиентах</td>
</tr>
<tr>
<td rowspan=2>Название<br>
<a href = "/index.php?action=client_info&order_field=Org_name&order_type=asc">⇑</a>
<a href = "/index.php?action=client_info&order_field=Org_name&order_type=desc">⇓</a>
</td>
<td rowspan=2>Адрес<br>
<a href = "/index.php?action=client_info&order_field=Adress&order_type=asc">⇑</a>
<a href = "/index.php?action=client_info&order_field=Adress&order_type=desc">⇓</a>
</td>
<td rowspan=2>Деятельность<br>
<a href = "/index.php?action=client_info&order_field=Deyatelnost&order_type=asc">⇑</a>
<a href = "/index.php?action=client_info&order_field=Deyatelnost&order_type=desc">⇓</a>
</td>
<td rowspan=2>Дополнительно<br>
</td>
<td colspan=4>Контактное лицо</td>
<td rowspan=2>Менеджер</td>
</tr>
<tr>
<td>ФИО</td>
<td>Телефон</td>
<td>E-mail</td>
<td>Должность</td>
</tr>
<?php
$query = "SELECT Organization.*, Kontaktnye_litca.* , Manager.FIO_manager
FROM Organization
INNER JOIN Kontaktnye_litca ON (Organization.Kontaktnye_litca_idKontaktnye_litca = Kontaktnye_litca.idKontaktnye_litca)
INNER JOIN Manager ON (Organization.Manager_idManager = Manager.idManager)";
if (isset($_GET['order_field']))
{
$query .= " ORDER BY ". $_GET['order_field'] ." ". strtoupper($_GET['order_type']);
}
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
echo'<tr>';
echo'<td>'.$row['Org_name'].'</td>';
echo'<td>'.$row['Adress'].'</td>';
echo'<td>'.$row['Deyatelnost'].'</td>';
echo'<td>'.$row['Dopolnitelno'].'</td>';
echo'<td>'.$row['FIO_KL'].'</td>';
echo'<td>'.$row['Phone'].'</td>';
echo'<td>'.$row['E-mail'].'</td>';
echo'<td>'.$row['Dolzhnost'].'</td>';
echo'<td>'.$row['FIO_manager'].'</td>';
echo'</tr>';
}
?>
</table>
</h3>
</div>
-
client_control.php
<form action="index.php?action=client_control_run" method="post" name="form1">
<h3>
<table width="100%" border="1" class="shap2">
<tr>
<td colspan="5" class="shap1">Управление клиентами</td>
</tr>
<tr>
<td ></td>
<td >Название</td>
<td >Адрес</td>
<td >Деятельность</td>
<td >Дополнительно</td>
</tr>
<?php
$result = mysql_query("SELECT *
FROM Organization
");
$row_ind=0;
while ($row = mysql_fetch_array($result))
{
$row_ind++;
$checked = ($row_ind == 1 ? 'checked="checked"' : '');
echo'<tr>';
echo'<td><input name="record_id" type="radio" '. $checked .' value="'. $row['idOrganization'] .'"></td>';
echo'<td>'.$row['Org_name'].'</td>';
echo'<td>'.$row['Adress'].'</td>';
echo'<td>'.$row['Deyatelnost'].'</td>';
echo'<td>'.$row['Dopolnitelno'].'</td>';
echo'</tr>';
}
?>
<tr>
<td colspan="5">
<input name="edit" type="submit" class="vhod" value="Редактировать">
<input name="delete" type="submit" class="vhod" value="Удалить">
</td>
</tr>
</table>
</h3>
</form>
-
client_control_run.php
<?
if (isset($_POST['edit'])) $mode = 'edit';
if (isset($_POST['delete'])) $mode = 'delete';
switch ($mode)
{
case 'edit':
include("client_add_edit.php");
break;
case 'delete':
$record_id = $_REQUEST['record_id'];
$result = mysql_query("DELETE FROM Organization WHERE (idOrganization = '". $record_id ."') LIMIT 1");
if ($result)
echo "<center><br>Запись удалена</center>";
else
die('MySQL error:'.mysql_error());
break;
}
?>
-
contract_add.php
<?php
echo '<form action="index.php?action=contract_add_run" method="post" name="form1">';
echo '<h2>Заполните форму, чтобы добавить новый контракт</h2>';
echo'
<h3>
<table width="100%" border="1" class="shap2">
<tr>
<td colspan="2" class="shap1">Информация о договоре</td>
</tr>
<tr>
<td>
<label for="date">Дата заключения</label>
<input type="date" name="date" id="date">
</td>
</tr>
<tr>
<td>
<label for="usluga">Организвция</label>
<select name="organization" id="organization">';
$result = mysql_query("SELECT idOrganization, Org_name FROM Organization");
while (($row = mysql_fetch_assoc($result)) != null)
{
echo '<option value="' . $row["idOrganization"] . '">' . $row["Org_name"] . '</option>';
}
echo '
</select>
</td>
</tr>
<tr>
<td>
<label for="usluga">Услуга </label>
<select name="usluga" id="usluga">';
$result = mysql_query("SELECT * FROM Uslugi");
while (($row = mysql_fetch_assoc($result)) != null)
{
echo '<option value="' . $row["idUslugi"] . '">' . $row["Vid_Uslugi"] . '</option>';
}
echo '
</select>
</td>
</tr>
<tr>
<td colspan="2">
<input name="zapisat" type="submit" class="vhod" id="zapisat" value="Сохранить">
</td>
</tr>
</table>
</h3>
</form>';
?>
-
contract_add_run.php
<?
$result = mysql_query(
"INSERT INTO Dogovor (Data_zakl, Manager_idManager, Organization_idOrganization, Uslugi_idUslugi)
VALUES ('".$_POST['date']."',
'".$user_id."',
'".$_POST['organization']."',
'".$_POST['usluga']."')");
if ($result)
echo "<center><br>Договор добавлен!</center>";
else
die('MySQL error:'.mysql_error());
?>
-
contract_info.php
<h3>
<table width="100%" border="1" class="shap2">
<tr>
<td colspan="10" class="shap1">Информация о договорах</td>
</tr>
<tr>
<td>Дата договора<br>
<a href = "/index.php?action=contract_info&order_field=Data_zakl&order_type=asc">⇑</a>
<a href = "/index.php?action=contract_info&order_field=Data_zakl&order_type=desc">⇓</a>
</td>
<td>Менеджер</td>
<td>Организация</td>
<td>Услуга</td>
</tr>
<?php
$query = "SELECT Dogovor.*, Manager.FIO_manager, Organization.Org_name, Uslugi.Vid_Uslugi
FROM Dogovor
INNER JOIN Manager ON (Dogovor.Manager_idManager = Manager.idManager)
INNER JOIN Organization ON (Dogovor.Organization_idOrganization = Organization.idOrganization)
INNER JOIN Uslugi ON (Dogovor.Uslugi_idUslugi = Uslugi.idUslugi)";
if (isset($_GET['order_field']))
{
$query .= " ORDER BY ". $_GET['order_field'] ." ". strtoupper($_GET['order_type']);
}
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
echo'<tr>';
echo'<td>'.$row['Data_zakl'].'</td>';
echo'<td>'.$row['FIO_manager'].'</td>';
echo'<td>'.$row['Org_name'].'</td>';
echo'<td>'.$row['Vid_Uslugi'].'</td>';
echo'</tr>';
}
?>
</table>
</h3>
-
contract_control.php
<form action="index.php?action=contract_control_run" method="post" name="form1">
<h3>
<table width="100%" border="1" class="shap2">
<tr>
<td colspan="5" class="shap1">Управление клиентами</td>
</tr>
<tr>
<td ></td>
<td>Дата договора</td>
<td>Менеджер</td>
<td>Организация</td>
<td>Услуга</td>
</tr>
<?php
$query = "SELECT Dogovor.*, Manager.FIO_manager, Organization.Org_name, Uslugi.Vid_Uslugi
FROM Dogovor
INNER JOIN Manager ON (Dogovor.Manager_idManager = Manager.idManager)
INNER JOIN Organization ON (Dogovor.Organization_idOrganization = Organization.idOrganization)
INNER JOIN Uslugi ON (Dogovor.Uslugi_idUslugi = Uslugi.idUslugi)";
if (isset($_GET['order_field']))
{
$query .= " ORDER BY ". $_GET['order_field'] ." ". strtoupper($_GET['order_type']);
}
$row_ind=0;
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
$row_ind++;
$checked = ($row_ind == 1 ? 'checked="checked"' : '');
echo'<tr>';
echo'<td><input name="record_id" type="radio" '. $checked .' value="'. $row['idDogovor'] .'"></td>';
echo'<td>'.$row['Data_zakl'].'</td>';
echo'<td>'.$row['FIO_manager'].'</td>';
echo'<td>'.$row['Org_name'].'</td>';
echo'<td>'.$row['Vid_Uslugi'].'</td>';
echo'</tr>';
}
?>
<tr>
<td colspan="5">
<input name="delete" type="submit" class="vhod" value="Удалить">
</td>
</tr>
</table>
</h3>
</form>
-
contract_control_run.php
<?
$record_id = $_REQUEST['record_id'];
$result = mysql_query("DELETE FROM Dogovor WHERE (idDogovor = '". $record_id ."') LIMIT 1");
if ($result)
echo "<center><br>Запись удалена</center>";
else
die('MySQL error:'.mysql_error());
?>
-
style.css
body {
font-family: verdana, helvetica, arial, sans-serif;
margin: 0;
padding: 0;
background-color : #AAA;
}
.tbl1
{
background-repeat: no-repeat;
background-color : #FFF;
background-image: url(../images/back.jpg);
}
#navcontainer { width: 100%; border-top: 1px solid #711;}
#navcontainer ul
{
margin-left: 0; padding-left: 0;
list-style-type: none;
font-size: 85%;
font-family: Times,serif;
}
#navcontainer a
{ display: block;
width: 100%;
padding: 0.25em;
background-color: ;
border-bottom: 1px solid #711;
color: #711;text-decoration: none;
}
#navcontainer a:hover {
background-color: #711;
color: #fff;
font-size: 85%;
}
p,main {
font-family: serif;
color: black;
margin-top: 0.3em;
font-size: 18px;
font-weight: 400;
text-align: center;
}
h1,h2,h3 {
font-family: arial Rounded MT Bold, arial, Helvetica;
font-weight: bold;
border-bottom: 0px solid #666;
color: #711;
margin-bottom: 0em;
font-size: 24px;
text-align: center;
}
a {
color: #711;
}
.vhod {
text-align: center;
}
#Knopka1 {
padding-left: 5px;
}
.shap1 {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 24px;
font-weight: 400;
color: #603;
text-align: center;
}
.shap2 {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 18px;
font-weight: 400;
color: #603;
text-align: center;
}
.infkl {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 14px;
font-weight: 400;
color: #603;
text-align: center;
}