Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
диплом / 1.rtf
Скачиваний:
44
Добавлен:
05.06.2015
Размер:
32.92 Mб
Скачать

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

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

Для разработки приложения, автоматизирующего работу продавца, использовался императивный, структурированный, объектно-ориентированный язык программирования Borland Delphi 7 (далее BD7), являющийся одним из самых распространенных на сегодняшний день. Данная среда разработки имеет ряд преимуществ:

Быстрота разработки приложения.

Высокая производительность разработанного приложения.

Низкие требования разработанного приложения к ресурсам компьютера.

Наращиваемость, за счет встраивания новых компонент и инструментов в среду разработки BD7.

Возможность разработки новых компонент и инструментов собственными средствами BD7 (существующие компоненты и инструменты доступны с открытым исходным кодом)

Удачная проработка иерархии объектов

Наличие большого объема литературы и множества готовых решений в сети интернет.

В BD7 так же имеется множество компонентов, упрощающих работу с базами данных.

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

BD7 имеет достаточное количество инструментов для установления соединения с базой данных. Для решения этой задачи использовался набор объектов ADO, работающих с большинством СУБД через Activex Data Objects.

Установка соединения с БД осуществляется через компонент ADOConnection. Данный компонент имеет множество свойств, для указания всех необходимых параметров процесса соединения с БД. Самыми важными из них являются свойства Active и ConnectionString. Свойство Active указывает текущее состояние соединения, а ConnectionString содержит строку соединения с параметрами подключаемой СУБД. При использовании некорректной строки соединения, свойству Active невозможно присвоить значение True.

Для построения строки соединения использовался специальный построитель (Рисунок 7). Построитель входит в набор объектов ADO, и представляет собой очень удобный инструмент для сборки строки соединения. При запуске построителя предлагается выбрать один из двух вариантов сборки: либо использовать уже существующий файл с параметрами подключения к СУБД, либо заново построить строку соединения.

Рисунок 7 - Первое окно построителя

Поскольку файла, необходимого для первого варианта, еще не было, использовался второй вариант. При этом в поле "Use Connection String" ничего писать не нужно. Для продолжения необходимо нажать кнопку "Build…", после чего открывается новое окно с несколькими вкладками (Рисунок 8). Для создания строки соединения достаточно только указания значений параметров на вкладках "Поставщик данных" и "Соединение".

Рисунок 8 - Свойства канала передачи данных. Поставщик данных

На первой вкладке необходимо из списка выбрать используемый поставщик данных, в данном проекте используется MicroSoft OLE DB Provider for ODBC Drivers, и продолжить настройку. На следующей вкладке, список имен источников данных не будет содержать имя требуемого источника данных. Включить его в данный список можно, воспользовавшись панелью управления операционной системы. Но тогда процесс установки, разрабатываемого приложения, усложнится и, к тому же, будет зависеть от типа операционной системы. Поэтому в первом пункте, необходимо переключиться на параметр "Использовать строку соединения" и нажать кнопку "Сборка".

Рисунок 9 - Свойство канала передачи данных

В открывшемся окне потребуется создать новый файловый источник данных, описывающий драйвер с которым будет устанавливаться связь. В процессе создания файлового источника данных нужно указать драйвер, для которого он создается, то есть MySQL ODBC Driver 5.1. А затем указать имя создаваемого файла (в проекте файл называется Connect_Param.dsn), после чего файл будет сохранен и будет открыта панель настроек указанного драйвера.

Рисунок 10 - Создание нового источника данных

На панели настроек драйвера необходимо заполнить все поля в соответствии с настройками СУБД MySQL, установленной на основной сервер, и параметрами используемой базы данных:

1 В поле Data Source Name указывается имя подключения;

2 Поле Description можно описать подключения;

В поле TCP/IP Server нужно указать адрес сервера. Например, localhost, если СУБД расположена на том же компьютере, где установлен и сам драйвер подключения;

Поле Port указывает номер порта, через который будет идти подключение;

В поля User и Password записываются, данные пользователя, которому будет позволено подключаться к базе удаленно;

В последнем поле Database требуется указать имя базы данных, с которым приложение будет работать.

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

Рисунок 11 - Панель настроек драйвера

Если тестирование соединения прошло успешно, то есть было выдано сообщение "Connection Successful", то создание строки соединения заканчивается на данном шаге, подтверждением введенных параметров и согласием на созданную строку (Рисунок 12).

Рисунок 12 - Строка соединения, сформированная построителем

Для проверки не обязательно запускать режим отладки. Компонент ADOConnection может устанавливать соединение и в ходе разработки. Для этого в окне инспектора объектов, устанавливается значение свойства "Connected" в true. Если строка соединения была собрана правильно, откроется форма авторизации пользователя базы данных (Рисунок 13). Если попробовать войти, значение свойства "Connected" установится в true. В случаи ошибки значение остается равным false.

Рисунок 13 - Окно авторизации для базы данных

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

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

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

Поскольку в данном проекте СУБД MySQL является элементом структуры, который связывает все остальные элементы, данные представляются в форматах привычных для него.

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

Следующая ошибка возникала при записи в базу данных даты сформированной кодом Delphi. Причем сообщение об ошибке генерировалось при обработке запроса СУБД MySQL, а не в ходе работы программы. Оказалось, что Delphi представляет дату в виде "hh:nn:ss dd.mm.yyyy" (может быть разным, в зависимости от настроек даты и времени в операционной системе), в то время как MySQL, воспринимает только формат "yyyy-mm-dd hh:nn:ss". В отличие от случая разделителя вещественных чисел, для смены формата даты не используется никаких параметров, значения которых можно было бы изменить. В этом случае необходимо в явном виде указывать формат даты при каждой записи в базу данных, используя функцию FormatDateTime(<Формат>,<Дата>) [13].

Последнее несоответствие, которое оказалось вариантом в худшем случае, было связанно с md5 шифровкой. Проблема заключалась в разных результатах процедур, двух языков программирования PHP и Delphi, хотя процедуры и имеют одни и те же назначение и алгоритм. Данная ситуация не выдавала никаких ошибок, и в ходе теста приложения, длительное время, неправильной работы не отмечалось. Что бы получить подобную ситуацию, надо зарегистрировать пользователя через интернет-магазин, после чего попробовать использовать его данные авторизации в разработанном приложении. Вводимый пароль, какой бы не использовался, никогда не пройдет проверку с положительным результатом. А все из-за того, что Delphi возвращает md5 код, записанный в верхнем регистре, в то время, как PHP записывает его в нижний регистр. Данную проблему можно решить одним из трех способов:

Переводить код, сгенерированный функцией 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, рекурсивно вызвавшей ее процедуры.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.3.6.2

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

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

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

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

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

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

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

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

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

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

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

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

автоматизация торговля сервер интернет

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 28 - Предупреждение об отсутствии соединения

Рисунок 29 - Форма авторизации при отсутствии соединения

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

Рисунок 30 - Предложение автономного режима работы

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

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

Что бы при автономной работе использовалась актуальная, на момент отсутствия соединения, номенклатура, программа перезаписывает файл номенклатуры, при каждом запуске с активным соединением.

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

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

Любая совершенная сделка купли-продажи должна сопровождаться с использованием фискального регистратора, поскольку в Российской Федерации действует фискальное законодательство.

В данной дипломной работе используется драйвер бюджетного фискального регистратора "500М" от компании Штрих-М. Компания поставляет свою продукцию с примерами на разных языках программирования, с программным обеспечением для теста и настройки фискального регистратора. Так же на официальном сайте можно доступны последняя версия драйвера и полное руководство программиста с описанием всех свойств и методов драйвера. Перед использованием фискального регистратора, необходимо установить драйвер (В данной дипломной работе используется драйвер версии 4.2), а затем подключить в коде разрабатываемого приложения. Процедура подключения выполняется при инициализации основной рабочей формы. После чего проверяется состояние подключения аппарата. Поскольку драйвер не имеет методов, автоматически определяющих свободный доступный COM-порт, в приложение реализован перебор всех COM-портов компьютера [5], останавливающийся в случаях, если порт найден или уже перебраны все порты.

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

Для реализации данной задачи, основная рабочая форма приложения была разделена на две вкладки: "Касса, которая содержит все ранее созданные элементы и "Сервис", которая разделена двумя панелями: "Импорт/экспорт данных" и "Параметры подключения" (Рисунок 31).

Рисунок 31 - Вкладка для пользователей группы "Программисты"

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

Панель "Параметры соединения" позволяет вручную настраивать соединение с базой данных. Здесь же сразу можно проверить соединение и подключиться к базе, используя новые параметры. Если подключение прошло успешно, необходимо сохранить настройки. Вместо самостоятельной настройки так же можно подключать файл соединения с заведомо верными параметрами. После использования второго варианта, старый файл с параметрами соединения заменяется указанным.

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

Рисунок 32 - Сообщение об ошибке работы фискального регистратора

Если же пользователь состоит в группе администраторов, программа перешагнет через этап проверки фискального регистратора и сделает доступным только вкладку "Сервис".

3.4

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

3.4.1 Установка OpenCart

Установка OpenCart не составляет большого труда, но следует относиться к данной процедуре ответственно. Так как при установке необходимо производить первоначальные настройки. После установки OpenCart, при первом посещении интернет-магазина, открывается первая страница настроек с условиями лицензии GNU с которыми необходимо. На следующей странице OpenCart проверяет версию и параметры настроек PHP и наличие необходимого программного обеспечения. При наличии недостатков, желательно прервать установку, и устранить проблему. Еще одна отличительная черта OpenCart от большинства других CMS, заключается в том, что позволяется продолжать установку, даже если имеются несоответствия нужных параметров с параметрами системы.

Рисунок 33 - Анализ системы установщиком CMS

Следующая страница уже потребует настроить подключение к базе данных. Параметру Database Host присваивается IP адрес основного сервера. Поля User и Password заполняются в соответствии с настройками СУБД MySQL. В Database Name указывается имя подключаемой базы данных, а в качестве префикса используется латинская буква "l".

Рисунок 34 - Настройка подключения к базе данных

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

Рисунок 35 - Стандартный вид магазина, работающего на OpenCart

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

Были произведены изменения, касательно внешнего вида интернет-магазина, связанные с изменением цветов схем. Как видно на рисунке, в шаблоне, используемом в CMS по умолчанию, преобладает синий цвет. Поскольку автоматизируемое предприятие занимается, по большей части, реализацией цветочной продукции и декоративных растений, использовались оттенки красного и зеленого цветов. Причем были выбраны мягкие оттенки, что бы при просмотре страниц не напрягались ни зрение, ни внимание посетителя. Для изменения текущих цветов сайта можно воспользоваться любым редактором изображений, позволяющий менять цвет и насыщенность изображения [11]. Изображения, используемые движком, расположены в каталоге \catalog\view\theme\default\image.

Так же были изменены некоторые надписи интернет-магазина и функционал. На рисунке 36 продемонстрирован вид интернет-магазина на движке OpenCart, после изменений.

Рисунок 36 - Вид магазина после изменений.

ЗАКЛЮЧЕНИЕ

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

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

Процесс автоматизации оптово-розничной торговли, в данной работе, представляет собой разработку системы, основанной на полученной информационной модели.

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

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

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

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

1 Тишбаев А.М. 1С:Предприятие 8.Версия для обучения программированию. URL:http://devtrainingforum.v8.1c.ru/forum/.

Гончаров Д.И., Хрусталева Е.Ю. Технологии интеграции 1С:Предприятия

Радченко М.Г. 1С:Предприятие 8.2. Практическое пособие разработчика

Сергей Кашаев. 1C:Предприятие 8. Учимся программировать на примерах

Форум программистов и сисадминов. URL:http://www.cyberforum.ru/programming/.

Паутов А.В. MySQL: руководство профессионала. URL:http://lib.rus.ec/b/328368/read.

Виктор Гольцман. MySQL 5.0. СПб., 2009.

Людоговский Александр. Использование библиотеки ADO (Microsoft ActiveX Data Object). URL:http://www.script-coding.com/ADO.html.

9 Самоучитель по Delphi для профессионалов. URL:http://www.computerbooks.ru/books/Programming/Book-Delphi-for-professionals/index.html.

Любаев Владимир. Delphi: уроки и примеры. URL:http://www.delphiexpert.ru/.

Прохоренок Н.А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. СПб., 2010.

Джен Харрингтон. Разработка баз данных, СПб., 2005.

Марко Кэнту. Delphi 7 для профессионалов. СПб., 2004.

Марат Ильмаз. OpenCart 1.4 Гид Новичка. Бирмингем, 2010.

НТЦ "Штрих-М. Руководство программиста. Штрих-М: Драйвер

ФР. НН., 2004.

Соседние файлы в папке диплом