Диплом: Автоматизация обработки заявок (на примере ООО "Белое озеро")

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
102
}
do_html_url('admin.php', 'Назад в меню администрирования');
do_html_footer();
?>
Модуль change_password_form.php
<?php
require_once("book_sc_fns.php");
session_start();
do_html_header("Изменение пароля администратора");
if (check_admin_rights())
display_password_form();
else
echo 'Необходимо иметь права администратора для просмотра этой
страницы.<br>';
do_html_url("admin.php", "Назад в меню управления");
do_html_footer();
?>
Модуль close_current_order.php
<?php
// сценарий вывода заявки на закрытие
require_once('book_sc_fns.php');
session_start();
do_html_header('Закрытие заявки');
if (check_admin_rights()){
$postid = $_POST['postid'];
$closed_date= $_POST['closed_date'];
$closed_time= $_POST['closed_time'];
if(close_order($postid, $closed_date, $closed_time))
echo 'Заявка'.$postid.' закрыта<br />';
else
echo 'Ошибка при закрытии заявки'.$postid.'<br />';
do_html_url('admin.php', 'Назад в меню администрирования');
}
else
echo 'Вы не авторизованы для просмотра этой страницы.';
do_html_footer();
?>
Модуль data_valid_fns.php
<?php
//---------------------------------------------------
// проверка заполнения обязательных полей
// входные переменные:
// $form_vars - массив переменных формы
// возвращаемое значение: true (заполнены все поля)
// false (заполнены не все поля)
function filled_out($form_vars)
{
foreach ($form_vars as $key => $value)
{
if (!isset($key) || ($value == ''))
return false;
}
return true;
}
//---------------------------------------------------
// проверка корректности email
// входные переменные:
// $address - адрес email
// возвращаемое значение: true (email корректен)
// false (email некорректен)
103
function valid_email($address)
{
if (ereg("^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$", $address))
return true;
else
return false;
}
?>
Модуль db_fns.php
<?php
//---------------------------------------------------
// соединение с БД
// входные переменные: нет
// возвращаемое значение: true (соединение установлено)
// false (соединение не установлено)
function db_connect()
{
$result = @mysql_connect('localhost', 'helpdesk', 'пароль');
if (!$result)
return false;
if (!@mysql_select_db('helpdesk'))
return false;
return $result;
}
//---------------------------------------------------
// помещение результатов SQL-выборки в массив
// входные переменные: $result - результат SQL-выборки
// возвращаемое значение: $res_array (массив)
function db_result_to_array($result)
{
$res_array = array();
for ($count=0; $row = @mysql_fetch_array($result); $count++)
$res_array[$count] = $row;
return $res_array;
}
?>
Модуль display_post_form.php
//---------------------------------------------------
// вывод формы для отправки сообщения
// входные переменные: нет
// возвращаемое значение: нет
function display_post_form()
{
?>
<form action="insert_new_post.php" method="post">
<table>
<tr>
<td>Адресат:</td>
<td><select name=userid>
<?php
$conn = db_connect();
$query = 'SELECT * FROM Сотрудники)';
$result = @mysql_query($query);
$user_res = db_result_to_array($result);
echo '<option value=0>Выберите адресата</option>';
foreach ($user_res as $thisusers)
{
echo '<option value="';
echo $thisusers['КодСотрудника'];
echo '"';
echo '>';
echo $thisusers['ИнициалыСотрудника'];
104
echo "\n";
}
?>
</select>
</td>
</tr>
<tr>
<td>Текст сообщения:</td>
<td><textarea rows="10" cols="45" name="post_text"></textarea></td>
</tr>
</table>
<input type =submit name="actionmode" value="Отправить">
</form>
<hr />
</body>
</html>
<?php
}
Модуль getproblems.php
<?php
// сценарий выбора поблемы из выпадающего списка
require_once('book_sc_fns.php');
session_start();
$hard_id=$_GET['hard_id'];
$problem_array =get_problems($hard_id);
$cyrr=iconv( "windows-1251", "utf-8","Выберите проблему");
echo "obj.options[obj.options.length] = new Option('$cyrr','0');\n";
if (!$problem_array){
$problem_id=1;
$problem_name='пустой список'.$hard_id;
$cyrr=iconv( "windows-1251", "utf-8",$problem_name);
echo "obj.options[obj.options.length] = new
Option('$cyrr','$problem_id');\n";
}
foreach ($problem_array as $thisproblem){
$problem_id=$thisproblem[0];
$problem_name=$thisproblem[1];
$cyrr=iconv( "windows-1251", "utf-8",$problem_name);
echo "obj.options[obj.options.length] = new
Option('$cyrr','$problem_id');\n";
}
?>
Модуль index.php
<?php
// сценарий вывода стартовой страницы
include ('book_sc_fns.php');
session_start();
do_html_header('Добро пожаловать в службу поддержки!');
echo '<p>Выберите действие:</p>';
echo '<a href="login.php">Вход для пользователей</a><br>';
if(isset($_SESSION['admin_user']))
{
display_button('admin.php', 'admin-menu', 'Admin Menu');
}
do_html_footer();
?>
Модуль info_post_form.php
<?php
// сценарий вывода информации о должностях
include ('book_sc_fns.php');
105
session_start();
do_html_header('Справочник должностей');
if (check_admin_rights())
display_postinfo_form();
else
echo 'Необходимо иметь права администратора для просмотра этой
страницы.<br>';
do_html_url("admin.php", "Назад в меню управления");
do_html_footer();
?>
Модуль insert_new_class.php
<?php
require_once('book_sc_fns.php');
session_start();
do_html_header('Добавление подразделения');
if (check_admin_rights()){
if (filled_out($_POST)) {
$title = $_POST['classname'];
$titleShort= $_POST['classshort'];
$titleSort= $_POST['classsort'];
if(insert_class($title,$titleShort, $titleSort))
echo "Отдел '".stripslashes($title)."' был добавлен в БД.<br />";
else
echo "Отдел '".stripslashes($title).
"' не был добавлен в БД.<br />";
} else
echo 'Вы заполнили не все поля. Попробуйте заново.';
do_html_url('admin.php', 'Назад в меню администрирования');
}else
echo 'Вы не авторизованы для просмотра этой страницы.';
do_html_footer();
?>
Модуль insert_new_post.php
<?php
require_once('book_sc_fns.php');
session_start();
do_html_header('Добавление сообщения');
if (check_admin_user())
{
if (filled_out($_POST))
{
$post_text = $_POST['post_text'];
$post_date = date('Y-m-d');
$post_time = date('H:i:s');
$sender = $_SESSION['admin_user'];
$hard_id=$_POST['dhtmlhard'];
$problem_id=$_POST['dhtmlproblem'];
if(insert_post($hard_id, $problem_id,$sender, $post_text,
$post_date,$post_time)){
echo "Сообщение было отправлено, продублировано на e-mail.<br />";
}else
echo "Сообщение было отправлено, но не продублировано на e-mail.<br />";
} else
echo 'Вы заполнили не все поля. Попробуйте заново.';
do_html_url('admin.php', 'Назад в меню управления');
}else
echo 'Вы не авторизованы для просмотра этой страницы.';
do_html_footer();
?>
Модуль insert_new_postemployee.php
106
<?php
require_once('book_sc_fns.php');
session_start();
do_html_header('Добавление должности');
if (check_admin_rights()){
if (filled_out($_POST)){
$title = $_POST['postname'];
if(insert_postemployee($title))
echo "Должность '".stripslashes($title)."' была добавлена в БД.<br
/>";
else
echo "Должность '".stripslashes($title).
"' не была добавлена в БД.<br />";
}else
echo 'Вы заполнили не все поля. Попробуйте заново.';
do_html_url('admin.php', 'Назад в меню администрирования');
}else
echo 'Вы не авторизованы для просмотра этой страницы.';
do_html_footer();
?>
Модуль insert_new_problem.php
<?php
require_once('book_sc_fns.php');
session_start();
do_html_header('Добавление описания проблемы');
if (check_admin_rights()){
if (filled_out($_POST)) {
$sourcename = $_POST['dhtmlhard'];
$problemname= $_POST['problemname'];
if(insert_problem($sourcename,$problemname))
echo "Проблема '".stripslashes($problemname)."' была добавлена в
БД.<br />";
else
echo "Проблема '".stripslashes($problemname).
"' не была добавлена в БД.<br />";
} else
echo 'Вы заполнили не все поля. Попробуйте заново.';
do_html_url('admin.php', 'Назад в меню администрирования');
}else
echo 'Вы не авторизованы для просмотра этой страницы.';
do_html_footer();
?>
Модуль login.php
<?php
require_once('book_sc_fns.php');
do_html_header('Доступ к функциям системы');
display_login_form();
do_html_footer();
?>
Модуль logout.php
<?php
// выход из акааунта
require_once('book_sc_fns.php');
session_start();
$old_user = $_SESSION['admin_user'];
unset($_SESSION['admin_user']);
session_destroy();
do_html_header('Logging Out');
if (!empty($old_user)){
echo 'Вы вышли.<br />';
107
do_html_url('login.php', 'Войти');
}else{
// пользователь не входил
echo 'Вы не водили, поэтому нет необходимости выхода.<br />';
do_html_url('login.php', 'Login');
}
do_html_footer();
?>
Модуль ord2excel.php
<?php
// Экспорт заявок
require_once('PHPExcel.php'); // Подключаем библиотеку PHPExcel
require_once('book_sc_fns.php');
session_start();
if (check_admin_user()) {
$phpexcel = new PHPExcel(); // Создаём объект PHPExcel
/* Каждый раз делаем активной 1-ю страницу и получаем её, потом записываем в
неё данные */
$page = $phpexcel->setActiveSheetIndex(0); // Делаем активной первую страницу
и получаем её
$page->setCellValue('A1', iconv('CP1251','UTF-8',"Список актуальных заявок на
".date('Y-m-d H:i:s')));
$page->mergeCells('A1:I1'); // объединение ячеек
$page->getStyle('A1')->getAlignment()-
>setVertical(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$page->getStyle('A1')->getFont()->setBold(true);
$page->getStyle('A1')->getFont()->setSize(14);
$page->setCellValue('A2', iconv('CP1251','UTF-8',"№ заявки"));
$page->setCellValue('B2', iconv('CP1251','UTF-8',"Дата"));
$page->setCellValue('C2', iconv('CP1251','UTF-8',"Время"));
$page->setCellValue('D2', iconv('CP1251','UTF-8',"ФИО"));
$page->setCellValue('E2', iconv('CP1251','UTF-8',"Отдел"));
$page->setCellValue('F2', iconv('CP1251','UTF-8',"Должность"));
$page->setCellValue('G2', iconv('CP1251','UTF-8',"Источник"));
$page->setCellValue('H2', iconv('CP1251','UTF-8',"Проблема"));
$page->setCellValue('I2', iconv('CP1251','UTF-8',"Описание"));
$page->setTitle("ActualOrd"); // Заголовок делаем "ActualOrd"
$conn = db_connect();
$query = "SELECT POST_ID,Дата, Время, ОТПР.ИнициалыСотрудника as ОтКого,
ИмяДолжности, ИмяОтдела, Неисправности.Проблема, ИмяТипа, Тема, Закрыта FROM
Сообщения, Сотрудники ОТПР, Неисправности, Оборудование, Отделы, Должности WHERE
(Сообщения.Отправитель=ОТПР.КодСотрудника)
AND(Неисправности.КодНеисправности=Сообщения.КодНеисправности) AND
(Оборудование.ТипОборудования=Сообщения.ТипОборудования) AND
(ОТПР.КодОтдела=Отделы.КодОтдела) AND (ОТПР.КодДолжности=Должности.КодДолжности)
AND Закрыта=0 order by Дата,Время DESC";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
$group_name='####';
$sheet_row=3;
$TotalSum=0;
$page->setCellValue("A".strval($sheet_row), iconv('CP1251','UTF-
8',$row['POST_ID']));
$page->setCellValue("B".strval($sheet_row), $row['Дата']);
$page->setCellValue("C".strval($sheet_row), $row['Время']);
$page->setCellValue("D".strval($sheet_row), iconv('CP1251','UTF-
8',$row['ОтКого']));
$page->setCellValue("E".strval($sheet_row), iconv('CP1251','UTF-
8',$row['ИмяОтдела']));
$page->setCellValue("F".strval($sheet_row), iconv('CP1251','UTF-
8',$row['ИмяДолжности']));
$page->setCellValue("G".strval($sheet_row), iconv('CP1251','UTF-
8',$row['ИмяТипа']));
108
$page->setCellValue("H".strval($sheet_row), iconv('CP1251','UTF-
8',$row['Проблема']));
$page->setCellValue("I".strval($sheet_row), iconv('CP1251','UTF-
8',$row['Тема']));
$sheet_row++;
}
$page->getStyle('A'.strval($sheet_row+2))->getFont()->setBold(true);
$page->getStyle('I'.strval($sheet_row+2))->getFont()->setSize(14);
$page->getColumnDimension('A')->setAutoSize(true);
$page->getColumnDimension('B')->setAutoSize(true);
$page->getColumnDimension('C')->setAutoSize(true);
$page->getColumnDimension('D')->setAutoSize(true);
$page->getColumnDimension('E')->setAutoSize(true);
$page->getColumnDimension('F')->setAutoSize(true);
$page->getColumnDimension('G')->setAutoSize(true);
$page->getColumnDimension('H')->setAutoSize(true);
$page->getColumnDimension('I')->setAutoSize(true);
$page->getStyle('A2:I2')->getFont()->setBold(true);
$page->getStyle('A2:I2')->getFont()->setSize(12);
$page->getStyle('A2:I2')->getAlignment()-
>setVertical(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$page->getStyle('A2:I2')->getAlignment()-
>setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
/* Начинаем готовиться к записи информации в xls-файл */
$objWriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel5');
/* Записываем в файл */
$objWriter->save("Актуальные_заявки.xls");
$file = ("Актуальные_заявки.xls");
header ("Content-Type: application/octet-stream");
header ("Accept-Ranges: bytes");
header ("Content-Length: ".filesize($file));
header ("Content-Disposition: attachment; filename=".$file);
readfile($file);
// Заявки экспортированы;
}
else
echo 'Вы не авторизованы для просмотра этой страницы.';
?>
Модуль output_fns.php
<?php
//---------------------------------------------------
// вывод заголовка HTML-содержимого
// входные переменные:
// $title - заголовок (по умолчанию пусто)
// возвращаемое значение: нет
function do_html_header($title = '')
{
global $_SESSION;
header('Content-Type: text/html; charset=utf-8');
?>
<html>
<head>
<title><?php echo $title; ?></title>
<style>
h2 { font-family: Arial, Helvetica, sans-serif; font-size: 22px; color
= red; margin = 6px }
body { font-family: Arial, Helvetica, sans-serif; font-size: 13px }
li, td { font-family: Arial, Helvetica, sans-serif; font-size: 13px }
hr { color: #FF0000; width=70%; text-align=center}
a { color: #000000 }
</style>
</head>
<body>
109
<table width=100% border=0 cellspacing = 0 bgcolor=#cccccc>
<tr>
<td rowspan = 2>
<a href = "index.php"><img src="images/CompLogo.jpg" alt="СЕРВИС" border=0
align=left valign=bottom height = 155 width = 300></a>
</td>
<td align = right valign = bottom>
<?php if(isset($_SESSION['admin_user'])){
echo 'Пользователь: '. $_SESSION['user_name'];
}
?>
</td>
<td align = right rowspan = 2 width = 135>
<?php if(isset($_SESSION['admin_user'])){
display_button('logout.php', 'log-out', 'Log Out');
}else{
display_button_login('login.php', 'login', 'вход для персонала');
}
?>
</tr>
<tr>
<td align = right valign = top>
<?php if(isset($_SESSION['admin_user'])){
echo 'Новых сообщений: '. $_SESSION['unread_posts'];
} else
?>
</td>
</tr>
</table>
<?php
if($title)
do_html_heading($title);
}
//---------------------------------------------------
// вывод завершения HTML-содержимого
// входные переменные: нет
// возвращаемое значение: нет
function do_html_footer()
{
?>
</body>
</html>
<?php
}
//---------------------------------------------------
// вывод кнопки входа
// входные переменные:
// $target - ссылка
// $image - пиктограмма
// $alt - альтернативная подпись
// возвращаемое значение: нет
function display_button_login($target, $image, $alt)
{
echo "<center><a href=\"$target\"><img src=\"images/$image".".png\"
alt=\"$alt\" border=0 height = 50 width = 135></a></center>";
}
//---------------------------------------------------
// вывод заголовка HTML-содержимого
// входные переменные: heading - заголовок
// возвращаемое значение: нет
function do_html_heading($heading)
{
?>
110
<h2><?php echo $heading; ?></h2>
<?php
}
//---------------------------------------------------
// сборка ссылки
// входные переменные: $ur - ссылка
// $name - подпись
// возвращаемое значение: нет
function do_html_URL($url, $name)
{
?>
<a href="<?php echo $url; ?>"><?php echo $name; ?></a><br />
<?php
}
//---------------------------------------------------
// вывод информации о сотруднике
// входные переменные: $employee - идентификатор сотрудника
// возвращаемое значение: нет
function display_employee_details($employee)
{
if (is_array($employee))
{
echo '<table><tr>';
if (@file_exists('images/'.($employee['КодСотрудника']).'.jpg'))
{
$size = GetImageSize('images/'.$employee['КодСотрудника'].'.jpg');
if($size[0]>0 && $size[1]>0)
echo '<td><img src=\'images/'.$employee['КодСотрудника'].'.jpg\'
border=0 '.$size[3].'></td>';
}
echo '<td><ul>';
echo '<li><b>ФИО:</b> ';
echo $employee['ИмяСотрудника'];
echo '<li><b>Должность:</b> ';
echo $employee['ИмяДолжности'];
echo '<li><b>Дата рождения:</b> ';
echo $employee['ДатаРожд'];
echo '<li><b>Адрес:</b> ';
echo $employee['Адрес'];
echo '<li><b>Контактные телефоны:</b> ';
echo $employee['Телефон'];
echo '<li><b>e-mail:</b> ';
echo $employee['ЭлПочта'];
echo '<li><b>Образование:</b> ';
echo $employee['Образование'];
echo '<li><b>Год окончания:</b> ';
echo $employee['ГодОкончания'];
echo '<li><b>Стаж работы в организации с:</b> ';
echo $employee['ДатаНачалаРаботы'];
echo '<li><b>Характеристика:</b> ';
echo $employee['Описание'];
echo '</ul></td></tr></table>';
}
else
echo 'Детальное описание сотрудника в данный момент отсутствует';
echo '<hr />';
}
//---------------------------------------------------
// вывод списка сотрудников
// входные переменные: $personnel_array - массив сотрудников
// возвращаемое значение: нет
function display_personnel($personnel_array)
{
111
if (!is_array($personnel_array))
{
echo '<br />В данный момент в этой категории позиций нет<br />';
}
else
{
echo '<table width = \"100%\" border = 0>';
foreach ($personnel_array as $row) {
$url = 'show_member.php?employee_code='.($row['КодСотрудника']);
echo '<tr><td>';
if (@file_exists('images/'.$row['КодСотрудника'].'.jpg')) {
$size = GetImageSize('images/'.$row['КодСотрудника'].'.jpg');
$title = '<img src=\'images/'.($row['КодСотрудника']).'.jpg\'
border=0'.'width = '. $size[0]/4 .' height = ' .$size[1]/4 . '>';
do_html_url($url, $title);
} else {
echo '&nbsp;';
}
echo '</td><td>';
$title = $row['ИнициалыСотрудника'].' '.$row['ИмяДолжности'];
do_html_url($url, $title);
echo '</td></tr>';
}
echo '</table>';
}
echo '<hr />';
}
//---------------------------------------------------
// вывод детальной информации о сообщении
// входные переменные: $postid - идентификатор сообщения
// $mode - режим вывода (0 - информация, 1 - с возможностью закрытия заявки)
// возвращаемое значение: нет
function display_post_details($postid, $mode)
{
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Демо</title>
<style type="text/css">
body{
background-repeat:no-repeat;
font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
height:100%;
background-color: #FFF;
margin:0px;
padding:0px;
}
select{
width:350px;
}
</style>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.date_input.js"></script>
<script type="text/javascript">$($.date_input.initialize);</script>
<link rel="stylesheet" href="css/date_input.css" type="text/css">
<link rel="stylesheet" type="text/css"
href="css/jquery.datetimepicker.css"/>
<script src="js/jquery.js"></script>
<script src="js/jquery.datetimepicker.js"></script>
</head>
<?php
$conn = db_connect();
$query = "SELECT POST_ID,Дата, Время, ОТПР.ИнициалыСотрудника as ОтКого,

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)