Файл: Проектирование реализации операций бизнес-процесса «Продажи» (Методы автоматизации предпринимательской деятельности).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.05.2023

Просмотров: 409

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

Методы и средства автоматизации предпринимательской деятельности

1.1 Методы автоматизации предпринимательской деятельности

1.2 Бесплатные Open-Source СУБД

1.3 Технологии удаленного доступа к базам данных

1.4 Электронная коммерция

2. Анализ оптово-розничной торговли в сфере флористики. Определение требований к разрабатываемой системе

2.1 Общие сведения

2.2 Требования к программным продуктам на серверах

2.3 Требования к CMS

2.4 Требования к интернет-магазину:

2.5 Требования к Программного Обеспечения для отдела управления торговлей и складов

3. Проектирование базы данных разработка и настройка необходимого программного обеспечения

3.1 Проектирование баз данных основного и архивного серверов

3.1.1 Описание предметной области

3.1.2 Построение реляционной модели данных

Настройка конфигурации 1С: Предприятие

3.1.1.1 Выбор платформы 1С

3.1.1.2 Доступа к данным через объект "Внешние источники данных"

3.1.1.3 Создание подключения к базе данных для управления данными

3.1.1.4 Организация объектов информационной базы 

Справочники

3.2.1.1Константы

3.2.1.2Документы

3.2.1.3 Отчеты

3.3Разработка ПО для торговых точек

3.3.1Выбор среды разработки и обоснование выбора

3.3.2Настройка удаленного соединения с базой данных

3.3.3Приведение некоторых форматов представления данных Delphi к форматам MySQL

3.3.4Реализация системы авторизации и работы с несколькими кассирами

3.3.5Импорт номенклатуры из базы данных

3.3.6 Совершений операций продаж. Запись в базу данных информации о совершенных продажах и поступивших заказах

3.3.7Использование и настройка компонента StringGrid, для размещения данных

3.3.8Форма указания количества заказываемого или покупаемого продукта и расчета суммы

3.3.9Контекстное меню объектов TTreeView и TStringGrid

3.3.4.1Организация автономного режима работы

3.3.4.2 Подключение и работа с фискальным регистратором

3.3.4.3 Разделение пользователей на группы. Разделение формы приложения на вкладки

4. Запуск интернет магазина

4.1 Установка OpenCart

4.2Изменение внешнего вида и настройка функциональности

ЗАКЛЮЧЕНИЕ

Список использованной литературы

— Переводить код, сгенерированный функцией Delphi, в нижний регистр.

— Переводить код, полученный из базы данных, в верхний регистр.

— Сравнивать коды без учета регистра.

В этой работе реализован первый вариант.

3.3.4Реализация системы авторизации и работы с несколькими кассирами

На каждой торговой точке может работать как один постоянный кассир, так и несколько, сменяющих друг друга по сменам. Поэтому важно отслеживать, каким именно из работников совершались операции в тот или иной день. Информация о кассире, каждый раз будет сохраняться в базе данных, вместе с информацией о продажах, и присутствовать на чеках, выданных в его смену.

Для реализации системы авторизации используется форма, выполняющая соединение с базой данных основного сервера сразу при запуске приложения. При этом параметры строки соединения будут теперь считываться из файла настроек с расширением ini. Форма имеет поля ввода, которые используются для ввода данных, авторизующегося пользователя, и кнопки выполняющие процедуры входа в систему, выхода из приложения, и скрытой кнопки повторной попытки соединения с базой данных (Рисунок 14). Рисунок 14 – Форма авторизации

Код обработчика нажатия на кнопку "Авторизация" (листинг), выполняет подключение и запрос к базе данных на получение записи из таблицы "l_kassir" по введенному логину. Если введен верный пароль, запоминаются данные работника и выполняются инициализация формы для работы кассира и скрытие формы авторизации. При вводе неверных данных выдается предупреждающее сообщение (Рисунок 15).

Рисунок 15 – Форма авторизации с неверно введенными данными

3.3.5Импорт номенклатуры из базы данных

Импорт номенклатуры одна из важных задач, которую требуется реализовать для кассового приложения. Необходимо что бы список продукции и услуг отображался в программе именно в том виде, в каком она представлена в справочнике "Номенклатура", конфигурации, разработанной ранее. Что бы решить эту задачу, были использованы объекты TTreeView и TADOQuery. Компонент TreeView служит для иерархического отображения данных в виде дерева, в котором можно выбрать нужный узел или узлы. Он будет отображать номенклатуру из базы данных. Объект TADOQuery предоставляет собой механизм работы с базой данных, позволяющий получать, модифицировать, удалять или добавлять данные. С помощью него будет извлекаться информация о номенклатуре.


Для организации работы кассира используется вторая форма, которая и является основным рабочим пространством. На данной форме располагается компонент "TreeView". Для хранения информации о каждом элементе дерева используются три массива: PriceCena для хранения цен на продукцию и услуги, PriceName для хранения наименований и PriceId для хранения идентификаторов, извлеченных из базы данных, записей. Причем каждому элементу PriceId должно быть правильно сопоставлено элементы PriceName и PriceCena.

Размерность массивов указывается не сразу, так как эта величина будет периодически меняться с изменением объема номенклатуры. Она указывается после подсчета суммы записей таблиц "l_category" и "l_product".

Поскольку глубина вложенности каталогов не имеет ограничения, процедура извлечения номенклатуры является рекурсивной. При этом, будут динамически создаваться экземпляры объектов TADOQuery при каждом вызове процедуры. Иначе, при обычном использовании компонента, каждое выполнение рекурсивно вызванной процедуры будет перезаписывать результат, хранимый в ADOQuery, рекурсивно вызвавшей ее процедуры.

Алгоритм процедуры представляет собой прямой обход дерева. Сначала из базы извлекается список каталогов для текущей ветви дерева. Затем ведется поиск товаров и услуг, которые являются дочерними для этой же ветви. Если такие находятся, то они добавляются к обрабатываемой ветви дерева, как дочерние элементы, а в массивы заносится информация о них[5 c69]. По завершении поиска товаров и услуг запускается цикл, в котором перебирается список каталогов, полученный в начале процедуры. В теле цикла для каждого каталога создается ветвь, являющаяся дочерней для текущего элемента дерева, и рекурсивно вызывается наша процедура с параметрами, обрабатываемого, на данный момент, каталога и только что созданной ветви. Причем созданные экземпляры объекта TADOQuery "уничтожаются" в обязательном порядке по завершению работы, что бы бессмысленно не расходовать ресурсы системы.

При запуске программы процедура выстраивает дерево в соответствии с содержимым номенклатуры, правильно воссоздав иерархию элементов, и не потеряв при этом ни одного из них (Рисунок 16).

Рисунок 16 – Номенклатура отображаемая приложением


3.3.6 Совершений операций продаж. Запись в базу данных информации о совершенных продажах и поступивших заказах

Розничные точки, как и склады, записывают информацию о продажах в таблицу "l_sale", а информацию о заказах в таблицу "l_zakaz". На форме имеется кнопка "Провести".

Почти весь программный код разработанного приложения и основная часть элементов формы связанна с операциями продаж. В связи с этим данная задача была разбита на несколько пунктов, каждой из которых будет посвящен собственный раздел:

— Использование объекта StringGrid, для размещения данных.

— Формы, указания количества заказываемого или покупаемого продукта.

— Контекстное меню объектов TreeView и StringGrid.

3.3.7Использование и настройка компонента StringGrid, для размещения данных

Объект StringGrid представляет собой таблицу, содержащую строки. В приложении используется для составления списка товаров, которые будут либо проданы, либо заказаны. Данный объект использует большую часть пространства приложения, для нормального и удобного, для работника, отображения списка. И представляет собой набор полей и записей.

Первые колонка и строка таблицы зафиксированы. Первая строка содержит наименование полей ("№", "Id", "Наименование", "Количество" и так далее). Первая колонка отображает номера записей. Так же в свойстве "ScrollBars" установлено значение "ssVertical", что бы использовалась только вертикальная полоса прокрутки (Рисунок 17).

При двойном щелчке левой кнопки мыши по элементу дерева, в таблицу вносится соответствующую запись. При этом сначала проверяется, является ли выбранный элемент дерева каталогом или продукцией.

Рисунок 17 – Визуальное отображение объекта "StringGrid"

3.3.8Форма указания количества заказываемого или покупаемого продукта и расчета суммы

Данная форма используется при заполнении таблицы, имеет несколько надписей для отображения информации о добавляемом товаре, поле ввода для указания количества, и две кнопки для завершения или отменны операции (Рисунок 18).


Рисунок 18 – Форма указания количества товаров

При каждом изменении содержимого поля ввода, автоматически изменяется текущая сумма, при этом программа контролирует корректность введенных значений (Рисунок 19). По нажатию на клавишу "Готово" в таблицу вносятся соответствующие записи (Рисунок 20).

Рисунок 19 – Процесс добавления товара в таблицу

На рисунке 20 изображен снимок таблицы, заполненный записью, с использованием формы введения количества товара. После совершения сделки купли-продажи таблица очищается.

Рисунок 20 – Таблица "StringGrid" с одной записью

3.3.9Контекстное меню объектов TTreeView и TStringGrid

При двойном нажатие левой кнопки мыши на элементе дерева, по умолчание будет выставляться операция "Продажа". Для реализации выбора типа операции воспользуется экземпляр объекта "TPopUpMenu" (контекстное меню) [10]. Контекстное меню дерева номенклатуры содержит две команды: "Продажа" и "Заказ". Каждая из команд контекстного меню, как и компоненты, имеет некоторый набор свойств и событий, представляемых в окне инспектора объектов (Рисунок 21).

Рисунок 21 – Редактор команд контекстного меню

Команда "Продажа" выполняет те же операции, что и при двойном нажатии, на левую кнопку мыши, на элементе дерева. Команда "Заказ" выполняет практически те же функции, что и команда "Продажа". За исключением того что в поле "Операция", таблицы StringGrid, заносится запись о том, что текущая позиция заказывается.

В программе реализована процедура выделяющая элемент дерева при нажатии правой кнопки мыши[3 с233. Ее алгоритм заключается в том, что отлавливаются координаты курсора, относительно формы приложения, в месте, где вызвано контекстное меню. После чего, по полученным координатам, учитывая смещение от левого верхнего угла формы, проверяется наличие элемента дерева, не обозначающего каталог. Если полученные координаты курсора удовлетворяют требуемым условиям, то элемент дерева, по которому было произведено нажатие правой кнопкой мыши, выделяется, а команды контекстного меню становятся активными (Рисунок 24). Иначе с деревом никаких операций не совершается, а команды контекстного меню деактивируются (рисунки 22 и 23).


Рисунок 22 – Вызов контекстного меню вне области дерева

Рисунок 23 – Вызов контекстного меню в области элемента дерева, обозначающего каталог

Рисунок 24 – Вызов контекстного меню в области элемента дерева, обозначающего реализуемую единицу продукции.

При добавлении записей в таблицу, отображается тип операции, для каждой добавленной позиции, и пересчитывается промежуточная итоговая сумма (Рисунок 25). По совершению операции купли-продажи промежуточная итоговая сумма скидывается на нуль.

Рисунок 25 – Процесс заполнения таблицы нескольким записями

При заполнении таблицы списком товаров не исключено, что работник может совершить ошибку, покупатель откажется от какой либо позиции или вообще передумает совершать покупку. Для таких случаев, реализована возможность редактирования записи таблицы и удаления одной записи или всего списка.

Эта задача решена, использованием еще одного экземпляра объекта "TPopUpMenu", который связан с элементом "StringGrid". Для контекстного меню таблицы используются три команды: "Редактировать", "Удалить" и "Удалить все". При выполнении команды "Редактировать", промежуточная итоговая сумма пересчитывается.

Строки таблицы, как и в случае дерева, невозможно выделить нажатием правой кнопки мыши. Поэтому при вызове контекстного меню отлавливаются координаты курсора, относительно действующей формы и проверяется, наличие ячейки в полученных координатах [9.с.99]. Если в полученных координатах ячеек не имеется, команды контекстного меню деактивируются (Рисунок 27). В противном случае, выделенная ячейка проверяется на наличие данных. Если она не пуста, команды контекстного меню активируются, а вся строка выделяется (Рисунок 26).

Рисунок 26 – Вызов контекстного меню в области заполненной строки

Рисунок 27 – Вызов контекстного меню вне области заполненных строк

3.3.4.1Организация автономного режима работы

При работе не исключается разъединение или отсутствие Интернет-соединения, по каким-либо причинам. В таком случае разработанное приложение, становится абсолютно бесполезным, поскольку такие действия, как авторизация работника, обновление номенклатуры, продажа или заказ товаров, требуют постоянного наличия соединения с базой данных. Полагаться на то, что таких неполадок не будет, очень рискованно и может принести убытки. В связи с этим в программе реализован автономный режим работы. Первая проверка состояния соединения проверяется при авторизации сотрудника. При отсутствии соединения, по какой-либо причине, выведется предупреждающее сообщение (Рисунок 28), деактивируется кнопка авторизации и активируется кнопка повторения попытки соединиться.