Текст
                    2
МИНОБРНАУКИ РОССИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕУЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Факультет компьютерных наук
Кафедра информационных технологий управления
УТВЕРЖДАЮ
заведующий кафедрой
__________
М.Г. Матвеев
подпись, расшифровка подписи
__.__.20__
ЗАДАНИЕ
НА ВЫПОЛНЕНИЕ ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЫ
ОБУЧАЮЩЕГОСЯ ИВАНОВА ИГОРЯ АНАТОЛЬЕВИЧА
1. Тема работы Разработка веб-сервиса для формирования коммерческого
предложения ООО «ЧерноземАгромаш», утверждена решением ученого совета
факультета компьютерных наук от __ .
_ _ .20__
2. Направление подготовки / специальность 09.03 .02 Информационные
системы и технологии
3. Срок сдачи законченной работы __.
__
20__
4. Календарный план: (строится в соответствии со структурой ВКР)
No
No
Структура ВКР
Сроки
выполнения
Примеча
ние
1 Введение
20.11. -22.11.2020
2 Глава 1. Постановка задачи
1.1 Обзор аналогов
23.11-25.12.2020
23.11-25.12.2020
3 Глава 2. Анализ предметной области
2.1 Терминология (глоссарий) предметной
области
2.2 Теоретические аспекты предметной
области
26.12.2020-
10.01.2021
26.12.2020-
4.01.2021
5.01-7.01.2021
4 Глава 3 Реализация
3.1 Средства реализации
3.1 Реализация логики
3.2 Реализация интерфейса
8.01-10.04.2021
8.01-10.01.2021
10.01-25.01.2021
26.01-10.04.2021
5 Заключение
11.04-12 .04.2021
6 Список использованных источников
13.04-14 .04.2021
7 Приложения
15.04-16.04.2021
Обучающийся
_____________
__И .А. Иванов_
Подпись
расшифровка подписи
Руководитель
_____________
__
В.И . Петров
Подпись
расшифровка подписи


3 Реферат Бакалаврская работа 50 с., 25 рисунков, 3 приложения. ИНФОРМАЦИОННАЯ СИСТЕМА, ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ, ВЕБ-ТЕХНОЛОГИИ, ВЕБ-СЕРВИС, КОММЕРЧЕСКОЕ ПРЕДЛОЖЕНИЕ, БАЗА ДАННЫХ, PYTHON, FLASK, JINJA2, EXCEL. Проблема. В настоящее время руководители организаций стараются экономить на внедрении новых программных продуктов в процесс функционирования организации, опираясь на труд работников и считая, что если сотрудник работает много, то значит он работает хорошо и эффективно, но, к сожалению, это не всегда так и можно даже из средствами свободного ПО дать сотруднику инструмент, который обеспечит более эффективное и менее ресурсозатратное выполнение сотрудником его трудовой функции. Противоречие. В настоящее время существует огромное количество различных программных продуктов, которые имеют излишние для организации функциональные возможности, по мнению руководителя организации, и значительно различаются по ценовому сегменту. Из вышеуказанного следует актуальность работы, целью которой является разработка веб-сервиса для формирования коммерческого предложения, которое направлено на повышение продуктивности работы менеджера по продажам ООО «ЧерноземАгромаш». Задачи, решаемые для достижения цели: − Изучить существующий процесс формирования коммерческого предложения ООО «ЧерноземАгромаш»; − Изучить потребности менеджера по продажам. − Проанализировать существующие в настоящее время системы, которые формируют коммерческое предложение. − Предложить перечень функциональных возможностей программного продукта для формирования коммерческого предложения менеджеру по продажам.
4 − Разработать программный продукт в соответствии с предложенными ранее менеджеру по продажам функциональными возможностями. Объект исследования – деятельность ООО «ЧерноземАгромаш». Предметом исследования является процесс формирования коммерческого предложения менеджером по продажам ООО «ЧерноземАгромаш». Основные разделы – введение, постановка задачи, анализ предметной области, реализация, заключение. Область применения – результаты данной работы будут интересны менеджерам по продажам.
5 Содержание Содержание .............................................................................................................. 5 Определения, обозначения и сокращения ............................................................ 6 Введение ................................................................................................................... 7 1 Постановка задачи................................................................................................ 8 1.1 Обзор аналогов ............................................................................................ 9 1.1.1 1С: Управление торговлей 8 ............................................................... 9 1.1.2 1С: Предприятие 8. Модуль «Коммерческое предложение» ........ 11 2 Анализ предметной области ............................................................................. 14 2.1 Теоретические аспекты предметной области......................................... 14 3 Реализация........................................................................................................... 20 3.1 Средства реализации................................................................................. 20 3.2 Логика приложения................................................................................... 22 3.2.1 Архитектура приложения .................................................................. 22 3.2.1.1 Модули веб-сервиса ............................................................. 22 3.3 Реализация интерфейса ............................................................................ 30 3.3.1 Простая блок-схема ........................................................................... 38 3.3.2 Диаграмма вариантов использования .............................................. 39 Заключение ............................................................................................................ 41 Список использованных источников .................................................................. 43 Приложение A ....................................................................................................... 44
6 Определения, обозначения и сокращения В настоящем отчете о ВКР применяют следующие термины с соответствующими определениями: Коммерческое предложение (КП) – документ с информацией о компании, её товарах и услугах, и предложением сотрудничества [1]. Бриф – соглашение о сотрудничестве, в котором прописываются все детали будущего проекта (медийного, графического, программного или другого) [2]. БД – база данных. ООО – общество с ограниченной ответственностью.
7 Введение Неотъемлемой частью не только повседневной, но и профессиональной жизни стали информационные технологии. Они значительно упростили жизнь современного человека: теперь можно полноценно работать из дома, имея под рукой все необходимые инструменты, которые ранее были доступны только в офисе; можно связываться с заказчиком из любой точки мира и обсуждать детали предстоящего проекта. Следовательно, современный человек стал более продуктивен, что крайне важно и для бизнеса: больше произведенных операций человеком – больше прибыль. Но, к сожалению, не все организации хотят облегчить повседневный труд своих работников за счет внедрения информационных технологий в деятельность организации, считая, что если сотрудник работает много, то значит он работает эффективно, а любые траты на программные продукты излишни. Сотрудники некоторых воронежских организаций по-прежнему вынуждены работать с большими объемами данных копируя их из одного документа в другой, что представляет собой очень длительный процесс и влечет за собой ошибки. Каждая такая ошибка и несвоевременность предоставления информации влияет на репутацию организации и может привести к потере заказчика. Из всего вышесказанного следует вывод о том, что использование информационных технологий в тех процессах, где идет работа с данными, является обязательным. Даже на основе свободных программных продуктов можно разработать достойный инструмент для ускорения выполнения трудовой функции сотрудника, который не имеет лишних функциональных возможностей и является максимально доступным для любой организации, о таком программном продукте, который предназначен для деятельности менеджера по продажам, пойдет речь в данной ВКР.
8 1 Постановка задачи Компания «ЧерноземАгромаш» занимает прочные позиции на российском рынке строительства комплексов для послеуборочной обработки зерна: элеваторов, комбикормовых и крупных заводов, а также комплексов ЗАВ и КЗС. Видами деятельности ООО «ЧерноземАгромаш» являются: − технико-экономическое обоснование проектируемого объекта; − общестроительные и фундаментные работы; − поставка отечественного и импортного оборудования ведущих заводов-производителей для послеуборочной переработки и хранения зерна: транспортное оборудование, силосы, зерносушилки, зерноочистительные линии; − монтаж, пусконаладка, обучение навыкам работы на оборудовании, гарантийное и сервисное обслуживание, консультирование; − реконструкция зерноочистительных комплексов; − реконструкция элеваторов; − автомобильные и вагонные электронные весы, а также модернизация механических автомобильных весов; − семенные линии известных брэндов «Cimbria», «Petkus» и др.; − маслозаводы «Farmet»различной производительности [4]. Целью данной выпускной квалификационной работы является разработка веб-сервиса, который предназначен для менеджера по продажам ООО «ЧерноземАгромаш» и позволяет ему автоматически формировать коммерческое предложение. К разрабатываемому веб-сервису выдвигаются следующие функциональные требования:
9 − Возможность автоматически генерировать коммерческое предложение путем вставки выбранных данных в шаблон формата .xls. − Наличие единой БД, в которой хранится вся информация по предоставляемым товарам и услугам. − Перерасчет стоимости товаров и услуг в соответствии с актуальным курсом выбранной пользователем валюты. − Автоматическая вставка в шаблон формата .xls текущей даты. − Наличие информационного раздела, который напоминает пользователю правила работы с веб-сервисом, позволяет связаться с разработчиком и предоставляет контакты ООО «ЧерноземАгромаш». 1.1 Обзор аналогов 1.1.1 1С: Управление торговлей 8 «1С:Управление торговлей 8» - это современный инструмент для повышения эффективности бизнеса торгового предприятия. Программа позволяет в комплексе автоматизировать задачи оперативного и управленческого учета, анализа и планирования торговых операций, обеспечивая тем самым эффективное управление современным торговым предприятием. Одной из главных особенностей «1С:Управления торговлей 8» является универсальность - программа поддерживает все основные виды торговли (розничную, оптовую, в кредит, по предварительному заказу, комиссионную), что позволяет успешно внедрить ее в большинстве торговых организаций. «1С:Управление торговлей 8» рассчитана на любые виды торговых операций. Реализованы функции учета - от ведения справочников и ввода первичных документов до получения различных аналитических отчетов.
10 Решение позволяет вести управленческий учет по торговому предприятию в целом. Для предприятия холдинговой структуры документы могут оформляться от имени нескольких организаций, входящих в холдинг [5]. Для отражения предложения клиенту о покупке товаров с указанием всех необходимых для этого условий предусмотрен документ Коммерческое предложение клиенту (рисунок 1, 2), использование которого позволяет зарегистрировать процесс предварительного взаимодействия с покупателем. Цены, условия оплаты и условия поставки коммерческого предложения регламентированы типовым и индивидуальным соглашением, в рамках которого фиксируется коммерческое предложение. Управление коммерческим предложением осуществляется при помощи соответствующих статусов документа. Окончательное согласование коммерческого предложения осуществляется клиентом. В процессе согласования коммерческого предложения клиенту можно предоставить дополнительную скидку или снизить цену [6]. Порядок работы с коммерческим предложением позволяет использовать несколько итераций при взаимодействии с клиентом. Если потенциального клиента не устроил предоставленный вариант, то на основании него можно сформировать новое, откорректированное коммерческое предложение. Рисунок 1 - Интерфейс 1С: Управление торговлей 8. Коммерческое предложение клиенту
11 Рисунок 2 - Интерфейс 1С: Управление торговлей 8. Коммерческое предложение клиенту 1.1.2 1С: Предприятие 8. Модуль «Коммерческое предложение» Данный аналог позволяет: − Напоминать менеджерам по продажам о статусах коммерческого предложения; − Выгружать коммерческое предложение в Word, Excel и PDF; − Рассчитывать прибыльность (рентабельность) сделки; − Выбирать валюту; − Устанавливать ручные скидки на конкретные позиции или на общую сумму сделки; − Предоставлять дополнительную информацию для вывода на печать (сроки, предоплата и прочее); − Отправлять коммерческие предложения по электронной почте; − Вести журнал коммерческих предложений, который позволяет: − В отдельном журнале КП вести реестр документов с возможностью фильтрации по клиентам, менеджерам, статусам;
12 − Создавать коммерческие предложения путем копирования ранее подготовленных предложений [7]. Интерфейс данного модуля представлен на рисунке 3 и рисунке 4. Рисунок 3 - Интерфейс модуля 1С: Предприятие 8 «Коммерческое предложение»
13 Рисунок 4 - Интерфейс модуля 1С: Предприятие 8 «Коммерческое предложение». Вид печатной формы Главным недостатком рассмотренных аналогов является их стоимость и наличие лишних функций, которые совсем не требуются в рамках поставленной задачи.
14 2 Анализ предметной области 2.1 Теоретические аспекты предметной области Коммерческое предложение – это устное или письменное предложение сотрудничества, которое содержит: − коммерческую информацию, − рекламу, − условия будущего партнерства. Передача коммерческого предложения осуществляется: − рассылкой писем потенциальным заказчикам; − передачей во время деловой встречи или после неё. Главной целью коммерческого предложения является привлечение внимания к производимому товару или предоставляемой услуге, результатом которого должно стать совершение сделки. В качестве промежуточных целей выступают: − заказ обратного звонка; − запрос/скачивание прайс-листа; − обращение за консультацией; − оформление заказа; − переход на сайт [9]. Следовательно, клиент, получивший коммерческое предложение, должен сразу понять все его основные аспекты: − смысл, − условия, − выгода.
15 К сожалению, предельная понятность не может гарантировать эффективности. Иногда требуется обратиться и к эмоциям клиента посредством персонализации коммерческого предложения. Коммерческие предложения бывают: − Холодные, которые неперсонализированы: рассылаются всем, кому потенциально может понадобится производимый продукт, ассоциируется со спамом. − Горячие, которые персонализированы под потребности заказчика, высылаются тем заказчикам, с кем был контакт. По содержанию гораздо длиннее холодных, потому как в них описываются подробно все условия сделки. Эффективность такого вида коммерческих предложений гораздо выше [10]. Коммерческие предложения, как холодные, так и горячие, имеют следующую общую структуру: − Заголовок, который привлекает внимание, отражает проблему и её решение. − Лид, где подчёркивается важность проблемы для получателя. − Оффер — предложение продукта для решения проблемы. − Основная часть, где описываются важные особенности продукта. − Контакты — как можно узнать подробности и сделать заказ [11]. В холодных коммерческих предложениях не указывается никакой информации о стоимости товара или услуги, потому как иначе не будут достигнуты промежуточные цели такие, как: скачивание прайса, переход на сайт, заказ обратного звонка или обращение за консультацией. Но, стоит отметить, что такой мощный инструмент продаж, как коммерческое предложение, подходит далеко не для всех, а используют его в B2B для сложных продаж с длинным циклом сделки.
16 Рассмотрим процесс формирования коммерческого предложения ООО «ЧерноземАгромаш» с помощью диаграмм IDEF0 (рисунок 5-6). Рисунок 5 - Контекстная диаграмма IDEF0 процесса формирования коммерческого предложения Рисунок 6 - Декомпозиция IDEF0 То есть менеджер по продажам имеет 2 документа: − Пустой предварительно сформированный структурированный оформленный шаблон .xls (рисунок 7).
17 − Сформированные ранее коммерческие предложения в .xls (рисунок 8). Рисунок 7 - Шаблон коммерческого предложения Рисунок 8 - Документ с готовыми коммерческими предложениями
18 Из второго документа менеджер постоянно копирует данные в первый, дополнительно ища и вставляя информацию по курсу валют на текущую дату. Среди проблем существующего подхода к формированию коммерческого предложения менеджером по продажам ООО «ЧерноземАгромаш» можно выделить следующие: − отсутствие БД, то есть в ручном режиме приходится копировать данные из одной электронной таблицы в другую; − ежедневный поиск информации об актуальном курсе валюты на сайте ЦБ РФ. Перечисленные проблемы приводят к многочисленным ошибкам в работе менеджера по продажам, следствием чего является срыв заключения договоров с потенциальными заказчиками и ухудшение репутации. Проанализировав текущий процесс формирования коммерческого предложения были предложены идеи по его улучшению, которые нашли отражение в диаграмме IDEF0, представленной на рисунке 9. Рисунок 9 - Декомпозиция изменённого процесса формирования коммерческого предложения
19 Таким образом, процесс формирования коммерческого предложения благодаря внедрению веб-сервиса, разработке которого посвящена данная ВКР, стал проще и минимизирует количество допускаемых ошибок менеджером по продажам в результате его работы.
20 3 Реализация 3.1 Средства реализации В качестве средств реализации для разработки веб-сервиса по формированию коммерческого предложения использованы: − Объектно-ориентированный язык Python. − Микрофреймворк Flask. − HTML. − CSS. − Библиотека xlsxwriter. − Библиотека pycbrf. − СУБД SQLite Studio. Язык Python имеет следующие преимущества: − Быстрота изучения языка и простота синтаксических конструкций. − Наличие динамической типизации. − Кроссплатформенность. − Большое количество сервисов, сред разработки, фреймворков, библиотек и документации. − Свободное распространение [12]. Среди преимуществ микрофреймворка Flask можно выделить следующие: простота, гибкость и аккуратность в работе: позволяет пользователю самому выбирать как реализовать ту или иную задачу. Flask вполне пригоден для реализации больших промышленных проектов, несмотря на не столь большие функциональные возможности.
21 Flask использует механизм шаблонов Jinja2 и имеет поддержку Unicode. Считается, что создание шаблонов на Jinja2 имеет больше возможностей, чем создание шаблонов Django. Среди особенностей Jinja2 можно выделить: − мощную автоматическую систему HTML; − наследование шаблонов; − компилирование до оптимального кода python [13]. Преимуществами СУБД SQLite Studio являются: − Кроссплатформенность, то есть возможность работаты на таких ОС,какWindows9x/2k/XP/2003/Vista/7,Linux,MacOSX. − Возможность экспорта в различные форматы. Например, SQL- операторы, CSV, HTML, XML, PDF, JSON. − Многочисленные небольшие дополнения, такие как форматирование кода, история запросов, выполняемых в окнах редактора и многое другое. − Наличие открытого исходного кода, который опубликован под лицензией GPLv3 [14].
22 3.2 Логика приложения 3.2.1 Архитектура приложения 3.2.1.1 Модули веб-сервиса В результате работы над ВКР был разработан веб-сервис, который состоит из нескольких модулей: − main. − _ _all_models. − db_session. − rates. − search_and_show_org. − validation. − work_with_db . − write_in_pattern. А также были разработаны следующие шаблоны, содержащиеся в папке templates: − authentification.html. − base.html. − contact.html. − error.html. − help.html. − info.html. − login.html. − refere_to_us.html. − refere_to_us_thanks.html.
23 − register_me.html. − register_me_thanks.html. − search_form.html. − send_form.html. При разработке шаблонов был применен механизм наследования: шаблоны наследованы от base.html. Декораторы в python являются обертками, которые расширяют возможности функций, не изменяя их [17]. Основной модуль main содержит в себе всю логику по работе с веб- страницами, в нем реализован следующий набор декораторов: − @app.errorhandler(400) − @app.route('/', methods=['GET', 'POST']) − @app.route('/login', methods=['GET', 'POST']) − @app.route('/home', methods=['GET', 'POST']) − @app.route('/search', methods=['GET', 'POST']) − @app.route('/contact') − @app.route('/proposal', methods=['GET', 'POST']) − @app.route('/refere_to_us', methods=['GET', 'POST']) − @app.route('/register_me_thanks') − @app.route('/refer_to_us_thanks') − @app.route('/info') − @app.route('/logout') @app.errorhandler(400) (листинг 1) служит для обработки ошибки с кодом 400 и показывает пользователю страницу error.html с сообщением о том, что данных не найдено.
24 Листинг 1 – Ошибка с кодом 400 @app.errorhandler(400) def not_found(error): return render_template("error.html", message="Извините, указанных Вами данных не найдено") Шаблон error.html, который наследуется от шаблона base.html имеет реализацию, как описано в листинге 2. Листинг 2 – Реализация шаблона error.html {% extends "base.html" %} {% block content_menu %} <h2 class="thanks">{{ message }}</h2> {% endblock %} @app.route('/', methods=['GET', 'POST']) и @app.route('/login', methods=['GET', 'POST']) декорируют функцию login(), которая ответственна за прохождение пользователем аутентификации, которая осуществляется с помощью функций модуля validation validation_user_fio(user_fio)и validation_user_pass(password) (листинг 3). Листинг 3 – Реализация функций validation validation_user_fio(user_fio)и validation_user_pass(password) def validation_user_fio(user_fio): processed_fio = user_fio.split() if ''.join(processed_fio).isalpha() and len(processed_fio) >= 3: return ' '.join(processed_fio) return None
25 def validation_user_pass(password): return password.isalnum() and len(password) > 5 @app.route('/home', methods=['GET', 'POST']) украшает первую главную функцию модуля main, которая начинает генерацию коммерческого предложения, получая от пользователя выбор категории и ввод наименования, а затем перенаправляет на страницу /search (код задекорированной функции представлен в приложении A). @app.route('/search', methods=['GET', 'POST']) работает со страницей /search , с помощью которой продолжается формирование коммерческого предложения, а именно: позволяет выбрать позицию из списка наименований выбранных из БД по указанной ранее категории и введенному неполному наименованию; позволяет выбрать валюту и задать требуемое количество товара или услуги (программный код представлен в приложении В). Сама запись в предварительно сформированный шаблон всей выбранной из БД информации осуществляется функцией write_in_pattern из одноименного модуля, которая в качестве одного из своих аргументов принимает результат работы get_rates(get_currency) (листинг 4), которая ответственна за получение актуального курса выбранной пользователем валюты от ЦБ РФ, как показано в [18]. Листинг 4 – Реализация получения актуального курса валюты from pycbrf.toolbox import ExchangeRates from datetime import datetime def get_rates(rate): rates = ExchangeRates(datetime.now().strftime("%Y- %m-%d")) return rates['USD'].value if rate == 'dol' else rates['EUR'].value
26 Реализация функции write_in_pattern() представлена в приложении С. Для записи выбранной из БД информации в шаблон коммерческого предложения формата .xls использована библиотека xlsxwriter, которая позволяет осуществлять только запись данных в существующую электронную таблицу. @app.route('/contact') декорирует функцию contact_me(), которая заполняет шаблон contact.html переданными в ней параметрами: сформированной картой с положением на ней ООО «ЧерноземАгромаш» и полным её адресом (листинг 5). Листинг 5 – Реализация получения контактной информации @app.route('/contact') def contact_me(): return render_template("contact.html", dep_adr=ADRESS_DEPARTMENT, dep_img="static/img/map1.png") @app.route('/proposal', methods=['GET', 'POST']) служит для связи с функцией proposal_me(), которая предоставляет незарегистрированному пользователю подать заявку при указании: − ФИО. − Пароля. − Должности. − Пола. − Номера телефона. Валидность введенного номера телефона проверяется функцией validation_user_phone(user_phone) модуля validation, программный код этой функции представлен в листинге 6.
27 Листинг 6 – Реализация проверки корректности номера телефона def validation_user_phone(user_phone): import re remainder = '' if user_phone.startswith('+7'): remainder = user_phone[2:] elif user_phone.startswith('8'): remainder = user_phone[1:] else: return False remainder = re.sub(r'[ -]', '', remainder) if re.match(r'^\(\d{3}\)', remainder): remainder = re.sub(r'\(', '', remainder, 1) remainder = re.sub(r'\)', '', remainder, 1) return bool(re.match(r'^\d{10}$', remainder)) @app.route('/refere_to_us', methods=['GET', 'POST']) позволяет благодаря функции refere_to_us() оставить пользователю отзыв о работе веб- сервиса. Разметка шаблона refere_to_us.html представлена в листинге 7. Листинг 7 – Разметка шаблона refere_to_us.html {% extends "base.html" %}{% block content_menu %} <form class="ref_me" action="" method="post"> <div class="form-group"> <label for="about">Поделитесь своим мнением о нашем веб-сервисе</label> <textarea class="form-control" id="about" rows="10" cols="50" name="about"></textarea> </div>
28 <button type="submit" class="btn btn- primary">Отправить</button> </form> {% endblock %} @app.route('/register_me_thanks') и @app.route('/refer_to_us_thanks') позволяют перейти на страницы, носящие информационный характер. @app.route('/info') декорирует функцию help_me(), благодаря которой осуществляется чтение информации о работе с веб-сервисом из файла help.txt и осуществляется вставка этих прочитанных данных в соответствующий шаблон help.html (листинг 8). Листинг 8 – Реализация чтения информации о работе с веб-сервисом def help_me(): user = get_user_name() with open('static/files/help.txt', 'r', encoding="utf-8") as f: help_text = f.read().split(";") return render_template("help.html", help_text=help_text, hello=user, image="static/img/agro.png") Помимо этого в модуле main реализована функция get_image_of_org(), которая благодаря функциям search() и show() модуля search_and_show_org, позволяет по указанному полному адресу найти географические координаты объекта и отметить их на карте в переданном масштабе (листинг 9). Листинг 9 – Реализация поиска географических координат объекта def get_image_of_org(): pt = search([ADRESS_DEPARTMENT]) map_file = "static/img/map1.png"
29 with open(map_file, "wb") as file: file.write(show(pt, scale="0.003,0.003").content)
30 3.3 Реализация интерфейса Пользователь проходит аутентификацию прежде чем воспользоваться всеми разработанными функциональными возможностями: вводит ФИО и пароль (рисунок 12). Рисунок 10 - Аутентификация менеджера по продажам Если пользователь допустил ошибку или не ввел требуемые данные, то ему будет выдано сообщение об этом (рисунок 13).
31 Рисунок 11 - Аутентификация. Неверный ввод. Также на странице прохождения аутентификации пользователь может просмотреть информацию о работе сервиса, посмотреть контакты и связаться с разработчиком (оставив отзыв о работе веб-сервиса или задав вопрос) (рисунок 14). Рисунок 12 - Дополнительная информация на странице аутентификации пользователя
32 Любой незарегистрированный пользователь может отставить заявку перейдя на вкладку «Связаться с нами», где должен ввести: − ФИО, − занимаемую в ООО «ЧерноземАгромаш» должность, − пароль, − выбрав пол, − оставив номер телефона. Интерфейс заявки на добавление в качестве пользователя, показан на рисунках 15, 16. Рисунок 13 - Страница регистрации пользователя
33 Рисунок 14 - Информационная страница После прохождения аутентификации пользователь попадает на страницу, где ему предлагается выбрать категорию (товары или услуги) и начать вводить название искомой позиции товара или услуги (регистр ввода не важен) (рисунок 17). Рисунок 15 - Страница выбора категории При нажатии на кнопку «Выбрать» происходит переход на страницу с перечнем найденных для пользователя наименований позиций, которые содержат введенное им ранее название товара или услуги (рисунок 18). Пользователь также на этой странице вводит количество, выбирает валюту.
34 При неверном вводе количества пользователь снова попадает на эту страницу, где введенные ранее данные будут очищены. Рисунок 16 - Страница выбора товара При нажатии на кнопку «Добавить в шаблон» данные о выбранной позиции товара или услуги добавляются в предварительно сформирова нный шаблон .xls. Текущая дата и актуальный курс валюты также будут вставлены автоматически. Итоговый вид сформированного коммерческого предложения представлен на рисунке 19.
35 Рисунок 17 - Коммерческое предложение Прошедшему аутентификацию пользователю также доступна возможность обратной связи при переходе на вкладку «Связаться с нами» в разделе «Дополнительная информация» с разработчиками сервиса – пользователь может поделится мнением о работе веб-сервиса или задать вопрос (рисунок 20, 21).
36 Рисунок 18 - Страница «Обратная связь» Рисунок 19 - Информационная страница
37 Перейдя на вкладку «Дополнительная информация. О сервисе» пользователю будет предоставлена полная информация о работе веб-сервиса (рисунок 22). Рисунок 20 - Страница о работе веб-сервиса Перейдя на вкладку «Дополнительная информация. Контакты» пользователю будет показано расположение ООО «ЧерноземАгромаш» на карте и даны контакты, такие как: точный адрес организации, её электронная почта, время работы и контактный телефон (рисунок 23). Рисунок 21 - Страница «Контакты»
38 3.3.1 Простая блок-схема Процесс формирования коммерческого предложения менеджером по продажам в виде простой блок-схемы [22, 23] с помощью разработанного веб-сервиса представлен на рисунке 24. Рисунок 22 - Простая блок-схема процесса работы веб-сервиса
39 3.3.2 Диаграмма вариантов использования Рисунок 23 - Диаграмма вариантов использования Таким образом, менеджер по продажам благодаря разработанному веб-сервису получил следующие возможности: − Автоматически формировать коммерческое предложение, предварительно: − Пройдя аутентификацию; − Выбрав категорию товаров и услуг; − Выбрав наименование товаров или услуг;
40 − Задав нужное количество товаров; − Выбрав валюту; Что приведет к автоматическому заполнению предварительно сформированного шаблона в формате .xls. − Поддерживать обратную связь с разработчиком; − Просматривать информацию о работе веб-сервиса. − Просматривать контакты ООО «ЧерноземАгромаш».
41 Заключение В результате выполнения выпускной квалификационной работы был изучен процесс формирования коммерческого предложения в ООО «ЧерноземАгромаш», который был неоптимальным по следующим причинам: − В ручном режиме приходилось постоянно копировать данные из одной электронной таблицы в другую. − Ежедневно приходилось искать данные об актуальном курсе валют ЦБ РФ. Исходя из выявленных недостатков процесса формирования коммерческого предложения был предложен более оптимальный процесс. Были рассмотрены и проанализированы преимущества и недостатки аналогичных программных продуктов, таких как: 1С: Управление торговлей и модуль «Коммерческое предложение» 1С: Предприятие 8. Указанные программные продукты – аналоги являются очень дорогостоящими и обладают излишними функциональными возможностями. Был разработан веб-сервис, который позволяет менеджеру по продажам ООО «ЧерноземАгромаш» автоматически формировать коммерческое предложение путем вставки выбранных данных в предварительно подготовленный единожды шаблон формата .xls, также были реализованы следующие функциональные требования: − Наличие единой БД, в которой хранится вся информация по предоставляемым товарам и услугам. − Перерасчет стоимости товаров и услуг в соответствии с актуальным курсом выбранной пользователем валюты. − Автоматическая вставка в шаблон формата .xls текущей даты.
42 − Наличие информационного раздела, который напоминает пользователю правила работы с веб-сервисом, позволяет связаться с разработчиком и посмотреть контакты организации.
43 Список использованных источников 1. Бахвалов, Н. С. Численные методы : учебник / Н. С. Бахвалов, Н. П. Жидков, Г. М. Кобельков. – 9-е изд. – Москва : Лаборатория знаний, 2020. – 636 с. – ISBN 978-5-00101-836-0 . – Текст : непосредственный. 2. Алгоритмы. Построение и анализ : [пер. с англ.] / Т. Кормен, Ч. Лей-зерсон, Р. Ривест, К. Штайн. – 3 -е изд. – Москва ; Санкт-Петербург : Диа-лектика, 2019. – 1323 с. – ISBN 978-5 -907114-11 -1 . – Текст : непосредственный. 3. Махортов, С. Д . Уравнения в нечеткой распределенной LP-структуре и возможности их применения в интеллектуальных системах / С. Д. Махортов // Вестник ВГУ. Серия: Системный анализ и информационные технологии. – 2020. – No 3. – С. 87-96 . 4. Дрюченко, М. А. Стегоанализ цифровых изображений с использованием глубоких нейронных сетей и гетероассоциативных интегральных преобразований / М. А . Дрюченко, А. А. Сирота // Прикладная дискретная математика. – 2022. – No 55 – С. 35-58. 5. Уилкс, М. Профессиональная разработка на Python / М. Уилкс ; перевод с английского А. А . Слинкина. – Москва : ДМК Пресс, 2021. – 502 с. – ISBN 978-5 -97060-930 -9. – Текст : электронный // Лань : электронно- библиотечная система. – URL : https://e.lanbook.com/book/241121 (дата обращения : 20.05 .2023). – Режим доступа: для авториз. пользователей. 6. ГОСТ Р 7.0.100-2018. Библиографическая запись. Библиографическое описание. Общие требования и правила составления : национальный стандарт Российской Федерации : дата введения 2019-07-01 / Федеральное агентство по техническому регулированию. – Изд. официальное. – Москва : Стандартинформ, 2018. – 1 24 с.
44 Приложение A Листинг А.1 – Реализация функции make_KP() def make_KP(): all_category = give_category() user_name = get_user_name() if request.method == 'GET': return render_template("send_form.html", title='', name=user_name, categories=all_category) elif request.method == 'POST': if request.form["choose_param"] == "have_product": choose_category = request.form["category"] category_index = all_category.index(choose_category) all_category[0], all_category[category_index] = all_category[category_index], \ all_category[0] get_id_category(choose_category) input_product = request.form["product"] if input_product: get_all_products(input_product) return redirect("/search") return render_template("send_form.html", title='Введите_название', name=user_name, categories=all_category)