Файл: Разработка регламента выполнения процесса "Управление документооборотом" (Описание предметной области. Постановка задачи).pdf
Добавлен: 11.03.2024
Просмотров: 19
Скачиваний: 0
В проекте исследуются все стадии внедрения доработки ИС, от аналитической разработки проекта, до внедрения проекта в компании ООО «АйДи – Технологии управления».
Проект исследует задачи управления документооборотом в ООО «АйДи – Технологии управления».
Результатом проекта является оптимизация процесса управления документооборотом благодаря верному и ориентированному выполнению задачи распределения и реализации заказов клиентов в ООО «АйДи – Технологии управления».
В проекте выполнены задачи автоматизации процесса обработки документов ООО «АйДи – Технологии управления», а именно:
- введена автоматическая регистрация заказов, которые приходят по электронной почте;
- введена автоматическая обработка заказов, пересланных после согласования по электронной почте и пр.
Список использованных источников
Нормативно-правовые акты
1. Гражданский кодекс РФ. Часть первая [Текст]: принята Федеральным законом от 30 ноября 1994 г. № 51-ФЗ (с изм. и доп.). - М.: ИНФРА-М, 2013. - 385 с.
2. Гражданский кодекс РФ. Часть вторая [Текст]: принята Федеральным законом от 26 января 1996 г. № 14-ФЗ (с изм. и доп.). - М.: ИНФРА-М, 2013. - 415 с.
Специальная литература
3. Абрютина М.С., Грачев А.В. Анализ финансово-экономической деятельности предприятия: учебно-практическое пособие / М.С. Абрютина. - 2-е изд., испр. - М.: Дело и сервис, 2014. - 256с.
4. Архипов, А.И., Сенчагов, В.К. Финансы. Денежное обращение и кредит: учебник / под ред. В.К. Сенчагова, А.И. Архипова. - М.: Проспект, 2013. - 496 с.
5. Чернышев, Ю.Г., Чернышев, Э.А. Анализ финансово-хозяйственной деятельности предприятия: учебное пособие / под ред. Чернышева Ю.Г. - М.: МарТ, 2014. - 304с.
6. Артеменко, В.Т., Белендир, М.В. Финансовый анализ: учебное пособие / под ред. Артеменко В.Т. - 2-е изд. - М.: Дело и сервис, 2017. - 190 с.
7. Баканов, М.И., Шеремет, А.Д. Теория экономического анализа: учебное пособие / под ред. Шеремета А.Д. - М.: Финансы и статистика, 2015. - 200 с.;
8. Балабанов, И.Т. Финансовый анализ и планирование хозяйствующего субъекта: учебное пособие / И.Т. Балабанов. - 2-е изд. доп. - М.: Финансы и статистика, 2014. - 208с.
9. Барановский, Н.Т. Автоматизированная обработка информации: учебник / Н.Т. Барановский. - М.: Финансы и статистика, 2014. - 94 с.
10. Бочаров, В.В. Финансовый анализ: учеб. пособие / В.В. Бочаров - СПб.: Питер, 2015. - 219с.
11. Васин, Ю.В., Лаврентьев, Л.Г., Самсонов, А.В. Эффективные программы лояльности: учебное пособие / под ред. Лаврентьева Л.Г. - М.: Альпина, 2013. - 340с.
12. Грузинов, В.П. Экономика предприятия: учебник / В.П. Грузинов - М.: Финансы и статистика, 2013. - 203с.
13. Захарьин, В.Р. Учет финансовых результатов: учебник / В.Р. Захарьин - М.: Финансы и статистика, 2014. - 139с.
14. Караваев В.С. Оцифровка архивных документов, 2014 – 243с.
15. Цуканова О. А. Методология и инструментарий моделирования бизнес-
процессов: учебное пособие – СПб.: Университет ИТМО, 2015 – 100 с.
16. Рацкий, К.А. Экономика предприятия: учебное пособие / К.А. Рацкий. - М.: Маркетинг, 2014. - 696с.
17. Рекхэм, Н. SPIN: Стратегия работ с клиентами: учебное пособие / Н. Рэкхэм. - М.: Маркетинг, 2013. - 314 с.
18. Рысев, Н.Ю. Как завоевать клиента: учебное пособие / Н.Ю. Рысев. - М.: Альпина, 2013. - 242с.
19. Снегирева, В.И. Категорийный менеджмент: учебное пособие / В.И. Снегирева. - СПб.: Питер, 2015. - 411 с.
20. Терещенко, В.М. Маркетинг: новые технологии в России: учебное пособие / В.М. Терещенко. - СПб.: Питер, 2017. - 415с.
21. Трубочкина, М. И. Управление затратами предприятия: учебное пособие / М.И. Трубочкина. - М.: ИНФРА-М, 2014 - 340с.
22. Уитмор, Дж. Новый стиль менеджмента: учебное пособие / Дж. Уитмор. - М.: Финансы и статистика, 2014. - 420 с.
23. Фокс, Джеффри Дж. Правила привлечения и удержания клиентов: учебное пособие / Дж. Фокс Джеффри. - М.: Альпина Бизнес Букс, 2015. - 170с.
24. Хопкинс, Т. Искусство торговать: учебное пособие / Т. Хопкинс. - Перевод с английского. - М.: Фаир-пресс, 2016. - 463 с.
25. Шелдрейк, Дж. Теория менеджмента: учебное пособие / Дж. Шелдрейк. - СПб.: Питер, 2017. - 352с.
26. Шеремет, А.Д., Сайфуллин Р.С. Методика финансового анализа: учебное пособие / под ред. Шеремета А.Д. - М.: ИНФРА-М, 2016. - 208с.
27. Якубова, Э.В. Розничная торговля. Состояние и перспективы: учебное пособие / Э.В. Якубова. - Ставрополь: 2016. - 290с.
Периодические издания
28. Албитов, А.Е., Соломатин, Е.О. Всё о CRM: [Customer Relationship Management] / А.Е. Албитов // Информация и бизнес. - 2017. №2. - С. 29-31.
29. Донцова, Л.В. Анализ эффективности производственно-хозяйственной деятельности / Л.В. Донцова // Менеджмент в России и за рубежом. - 2017. №5. С. 16-22.
30. Ермолаева, Н.А. CRM: ориентация на клиента / Н.А. Ермолаева // БОСС. Бизнес, организация, стратегия, системы. - 2017. № 2. С. 19-25.
31. Кадыков, М.Н. Особенности внедрения CRM / М.Н. Кадыков // Sales business. - 2017. №4. С. 122.
32. Картышов, С.В., Кульчицкая, И.А., Поташников Н.М. Управление комплексом маркетинга предприятия на основе CRM-технологий // С. В. Картышов. // Маркетинг в России и за рубежом. - 2017. №2. С 64-67.
33. Катков, В.М. Как повернуть предприятие лицом к потребителю? / В.М. Катков // Консультант директора. - 2017. №6. С 15-18.
34. Кузнецов, С.А. Введение в информационные системы / С.А. Кузнецов // Системы управления базами данных. - 2014. - №2. - с. 7-22.
35. Мальков, А.Е. Оценка экономической эффективности внедрения автоматизированной CRM-системы / А.Е. Мальков // Международный маркетинг. - 2016 № 34. С. 25-29.
36. Рамзаев, М.С. CRМ - управление отношениями с клиентами / М.С. Рамзаев //Маркетинг в России. - 2017, № 1. С. 33-36.
37. Тихомирова Н.В. Управлять качеством системно / Н.В. Тихомирова // Стандарты и качество. - 2013. № 9. С.82-84.
Листинг программы
<?php
$settings = array(
'baseDir' => '../',
'charSet' => 'utf-8',
'debug' => true,
'gzip' => true,
'compressionLevel' => 9,
'gzipExceptions' => array('gif','jpeg','jpg','png','swf'),
'minify' => true,
'concatenate' => true,
'separator' => ',',
'embed' => true,
'embedMaxSize' => 5120,
'embedExceptions' => array('htc'),
'serverCache' => true,
'serverCacheCheck' => false,
'cacheDir' => 'cache/',
'cachePrefix' => 'so_',
'clientCache' => true,
'clientCacheCheck' => false,
);
//mime types
$mimeTypes = array(
"js" => "text/javascript",
"css" => "text/css",
"htm" => "text/html",
"html" => "text/html",
"xml" => "text/xml",
"txt" => "text/plain",
"jpg" => "image/jpeg",
"jpeg" => "image/jpeg",
"png" => "image/png",
"gif" => "image/gif",
"swf" => "application/x-shockwave-flash",
);
function headerExit($status) {
header("HTTP/1.0 $status");
exit();
}
function headerNoCache() {
// already expired
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// always modified
header("Last-Modified: " . gmdatestr());
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Cache-Control: max-age=0", false);
// HTTP/1.0
header("Pragma: no-cache");
//generate a unique Etag each time
header('Etag: '.microtime());
}
function headerNeverExpire(){
header("Expires: " . gmdatestr(time() + 315360000));
header("Cache-Control: max-age=315360000");
}
function debugExit($msg){
global $settings;
if (!$settings['debug']) {
headerExit('404 Not Found');
}
headerNoCache();
header('Content-Type: text/html; charset='.$settings['charSet']);
header("Content-Encoding: none");
echo "//<script>\n";
echo "alert('SmartOptimizer Error: ".str_replace("\n", "\\n", addslashes($msg))."');\n";
echo "//</script>\n";
exit();
}
function gmdatestr($time = null) {
if (is_null($time)) $time = time();
return gmdate("D, d M Y H:i:s", $time) . " GMT";
}
function filesmtime() {
global $files, $fileType;
static $filesmtime;
if ($filesmtime) return $filesmtime;
$filesmtime = max(@filemtime("minifiers/$fileType.php"), filemtime('index.php'), filemtime('config.php'));
foreach ($files as $file) {
if (!file_exists($file)) debugExit("File not found ($file).");
$filesmtime = max(filemtime($file), $filesmtime);
}
return $filesmtime;
}
@include('config.php');
list($query) = explode('?', urldecode($_SERVER['QUERY_STRING']));
if (preg_match('/^\/?(.+\/)?(.+)$/', $query, $matchResult)) {
$fileNames = $matchResult[2];
$fileDir = $settings['baseDir'].$matchResult[1];
} else debugExit("Invalid file name ($query)");
if (strpos(realpath($fileDir), realpath($settings['baseDir'])) !== 0) debugExit("File is out of base directory.");
if ($settings['concatenate']) {
$files = explode($settings['separator'], $fileNames);
$settings['concatenate'] = count($files) > 1;
} else $files = array($fileNames);
foreach ($files as $key => $file) {
if (preg_match('/\.([a-z0-9]+)$/i', $file, $matchResult)) {
$fileTypes[] = strtolower($matchResult[1]);
} else debugExit("Unsupported file ($file)");
$files[$key] = $fileDir.$file;
}
if ($settings['concatenate']) {
if (count(array_unique($fileTypes)) > 1) debugExit("Files must be of the same type.");
}
$fileType = $fileTypes[0];
if (!isset($mimeTypes[$fileType])) debugExit("Unsupported file type ($fileType)");
header("Content-Type: {$mimeTypes[$fileType]}; charset=".$settings['charSet']);
$settings['gzip'] =
($settings['gzip'] &&
!in_array($fileType, $settings['gzipExceptions']) &&
in_array('gzip', array_map('trim', explode(',' , @$_SERVER['HTTP_ACCEPT_ENCODING']))) &&
function_exists('gzencode'));
if ($settings['gzip']) header("Content-Encoding: gzip");
$settings['minify'] = $settings['minify'] && file_exists('minifiers/'.$fileType.'.php');
$settings['embed'] = $settings['embed'] && $fileType == 'css' && (!preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('/msie 8|opera/i', $_SERVER['HTTP_USER_AGENT']));
$settings['serverCache'] = $settings['serverCache'] && ($settings['minify'] || $settings['gzip'] || $settings['concatenate'] || $settings['embed']);
if ($settings['serverCache']) {
$cachedFile = $settings['cacheDir'].$settings['cachePrefix'].md5($query.($settings['embed']?'1':'0')).'.'.$fileType.($settings['gzip'] ? '.gz' : '');
}
$generateContent = ((!$settings['serverCache'] && (!$settings['clientCache'] || !$settings['clientCacheCheck'] || !isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || $_SERVER['HTTP_IF_MODIFIED_SINCE'] != gmdatestr(filesmtime()))) ||
($settings['serverCache'] && (!file_exists($cachedFile) || ($settings['serverCacheCheck'] && filesmtime() > filemtime($cachedFile)))));
if ($settings['clientCache'] && $settings['clientCacheCheck']) {
if ($settings['serverCache'] && !$generateContent) $mtime = filemtime($cachedFile);
elseif ($settings['serverCache']) $mtime = time();
else $mtime = filesmtime();
$mtimestr = gmdatestr($mtime);
}
if (!$settings['clientCache'] || !$settings['clientCacheCheck'] || !isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || $_SERVER['HTTP_IF_MODIFIED_SINCE'] != $mtimestr) {
if ($settings['clientCache'] && $settings['clientCacheCheck']) {
header("Last-Modified: " . $mtimestr);
header("Cache-Control: must-revalidate");
} elseif ($settings['clientCache']) {
headerNeverExpire();
} else headerNoCache();
if ($generateContent) {
if ($settings['minify']) include('minifiers/'.$fileType.'.php');
$content = array();
foreach ($files as $file) (($content[] = @file_get_contents($file)) !== false) || debugExit("File not found ($file).");
$content = implode("\n", $content);
if ($settings['minify']) $content = call_user_func('minify_' . $fileType, $content);
if ($settings['gzip']) $content = gzencode($content, $settings['compressionLevel']);
if ($settings['serverCache']) {
$handle = @fopen($cachedFile, 'w') or debugExit("Could not create cache file($cachedFile).");
fwrite($handle, $content);
fclose($handle);
}
header('Content-Length: ' . strlen($content));
echo $content;
} else {
header('Content-Length: ' . filesize($cachedFile));
readfile($cachedFile);
}
} else headerExit('304 Not Modified');
?>
<?php
/*
* SmartOptimizer CSS Minifier
*/
function convertUrl($url, $count)
{
global $settings, $mimeTypes, $fileDir;
static $baseUrl = '';
$url = trim($url);
if (preg_match('@^[^/]+:@', $url)) return $url;
$fileType = substr(strrchr($url, '.'), 1);
if (isset($mimeTypes[$fileType])) $mimeType = $mimeTypes[$fileType];
elseif (function_exists('mime_content_type')) $mimeType = mime_content_type($url);
else $mimeType = null;
if (!$settings['embed'] ||
!file_exists($fileDir.$url) ||
($settings['embedMaxSize'] > 0 && filesize($fileDir.$url) > $settings['embedMaxSize']) ||
!$fileType ||
in_array($fileType, $settings['embedExceptions']) ||
!$mimeType ||
$count > 1) {
if (strpos($_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME'].'?') === 0 ||
strpos($_SERVER['REQUEST_URI'], rtrim(dirname($_SERVER['SCRIPT_NAME']), '\/').'/?') === 0) {
if (!$baseUrl) return $fileDir . $url;
}
return $baseUrl . $url;
}
$contents = file_get_contents($fileDir.$url);
if ($fileType == 'css') {
$oldFileDir = $fileDir;
$fileDir = rtrim(dirname($fileDir.$url), '\/').'/';
$oldBaseUrl = $baseUrl;
$baseUrl = 'http'.(@$_SERVER['HTTPS']?'s':'').'://'.$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['SCRIPT_NAME']), '\/').'/'.$fileDir;
$contents = minify_css($contents);
$fileDir = $oldFileDir;
$baseUrl = $oldBaseUrl;
}
$base64 = base64_encode($contents);
return 'data:' . $mimeType . ';base64,' . $base64;
}
function minify_css($str) {
$res = '';
$i=0;
$inside_block = false;
$current_char = '';
while ($i+1<strlen($str)) {
if ($str[$i]=='"' || $str[$i]=="'") {//quoted string detected
$res .= $quote = $str[$i++];
$url = '';
while ($i<strlen($str) && $str[$i]!=$quote) {
if ($str[$i] == '\\') {
$url .= $str[$i++];
}
$url .= $str[$i++];
}
if (strtolower(substr($res, -5, 4))=='url(' || strtolower(substr($res, -9, 8)) == '@import ') {
$url = convertUrl($url, substr_count($str, $url));
}
$res .= $url;
$res .= $str[$i++];
continue;
} elseif (strtolower(substr($res, -4))=='url(') {//url detected
$url = '';
do {
if ($str[$i] == '\\') {
$url .= $str[$i++];
}
$url .= $str[$i++];
} while ($i<strlen($str) && $str[$i]!=')');
$url = convertUrl($url, substr_count($str, $url));
$res .= $url;
$res .= $str[$i++];
continue;
} elseif ($str[$i].$str[$i+1]=='/*') {//css comment detected
$i+=3;
while ($i<strlen($str) && $str[$i-1].$str[$i]!='*/') $i++;
if ($current_char == "\n") $str[$i] = "\n";
else $str[$i] = ' ';
}
if (strlen($str) <= $i+1) break;
$current_char = $str[$i];
if ($inside_block && $current_char == '}') {
$inside_block = false;
}
if ($current_char == '{') {
$inside_block = true;
}
if (preg_match('/[\n\r\t ]/', $current_char)) $current_char = " ";
if ($current_char == " ") {
$pattern = $inside_block?'/^[^{};,:\n\r\t ]{2}$/':'/^[^{};,>+\n\r\t ]{2}$/';
if (strlen($res) && preg_match($pattern, $res[strlen($res)-1].$str[$i+1]))
$res .= $current_char;
} else $res .= $current_char;
$i++;
}
if ($i<strlen($str) && preg_match('/[^\n\r\t ]/', $str[$i])) $res .= $str[$i];
return $res;
}
?>