Страницы 1 2
2.6 Проектирование структуры базы данных
База данных web-сервиса «WebСклад» представлена в СУБД MySQL. Все таблицы базы данных сайта были созданы web-приложения phpMyAdmin.
PHPMyAdmin — веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой web-интерфейс для администрирования СУБД MySQL. PHPMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у web-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс [19].
При разработке базы данных web-сервиса «WebСклад» было создано 15 таблиц (рисунок 15).
Рисунок 15 – Список таблиц базы данных web-сервиса «WebСклад»
«Agent». Таблица содержит информацию о контрагентах: поставщиков и покупателях.
Таблица 1 – Структура таблицы «Agent»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор контрагента |
| Ownership | int(11) | BTREE | Нет | Идентификатор формы собственности |
| Name | char(30) | — | Нет | Наименование контрагента |
| Address | char(50) | — | Нет | Юридический адрес |
| INN | char(10) | — | Нет | ИНН |
| KPP | char(9) | — | Нет | КПП |
| Person | int(11) | BTREE | Нет | Идентификатор руководителя |
«Document». Электронная форма складского ордера.
Таблица 2 – Структура таблицы «Document»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор складского ордера |
| NumberD | char(15) | — | Нет | Регистрационный номер документа |
| DateD | date | — | Нет | Дата документа |
| Agent1 | int(11) | BTREE | Нет | Контрагент/склад отпускающий |
| Agent2 | int(11) | BTREE | Нет | Контрагент/склад принимающий |
| Operat | tinyint(1) | — | Нет | Операция прихода/расхода |
| Status | int(11) | — | Нет | Статус документа |
| Person | int(11) | BTREE | Нет | Идентификатор ответственного |
«DocumentTable». Табличная форма складского ордера.
Таблица 3 – Структура таблицы «DocumentTable»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор записи табличной части складского ордера |
| Document | int(11) | BTREE | Нет | Шапка складского документа |
| Product | int(11) | BTREE | Нет | Товар |
| CountD | int(11) | — | Нет | Количество |
«Dogovor». Таблица хранит перечень заключенных договоров.
Таблица 4 – Структура таблицы «Dogovor»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор договора |
| Number | char(100) | — | Нет | Регистрационный номер договора |
| Date | date | — | Нет | Дата договора |
| Dogovor | int(11) | BTREE | Нет | Договор |
| Agent | int(11) | BTREE | Нет | Контрагент |
| TypePay | int(11) | BTREE | Нет | Форма оплаты |
| PercentPay | decimal(10,0) | BTREE | Нет | % предоплаты |
«GroupProduct». Таблица содержит перечень заключенных договоров.
Таблица 5 – Структура таблицы «GroupProduct»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор группы товара |
| GroupProduct | char(150) | — | Нет | Наименование группы товара |
«Oborot». Таблица используется для отражения движения товара на складе – количественные обороты.
Таблица 6 – Структура таблицы «Oborot»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор записи оборота товара |
| DateO | date | — | Нет | Дата движения товара |
| Operat | tinyint(1) | — | Нет | Операция движения: приход/расход |
| Agent | int(11) | BTREE | Нет | Контрагент/склад |
| Product | int(11) | BTREE | Нет | Товар |
| CountO | int(11) | BTREE | Нет | Количество |
| Document | int(11) | BTREE | Нет | Исполнительный документ |
«Ownership». Таблица форм собственности организаций.
Таблица 7 – Структура таблицы «Ownership»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор формы собственности |
| Ownership | char(150) | — | Нет | Наименование форм собственности |
«Payment». Используется для отражения оплаты по договору.
Таблица 8 – Структура таблицы «Payment»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор платежа |
| NumberDoc | char(150) | — | Да | Номе платежного документа |
| DateDoc | date | — | Нет | Дата платежа |
| Dogovor | int(11) | BTREE | Нет | Идентифиактор договора |
«Person». Таблица содержит сотрудники орагнизаций/физлиц.
Таблица 9 – Структура таблицы «Person»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор сотрудника |
| TabNumber | char(5) | — | Нет | Табельный номер сотрудника |
| FIO | char(250) | — | Нет | Фамилия Имя Отчество |
| Vacant | int(11) | BTREE | Нет | Идентифиактор должности |
| Telefon | char(50) | — | Да | Контактный телефон |
«Product». Содержит перечень товаров на складе.
Таблица 10 – Структура таблицы «Product»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор товара |
| Article | char(15) | — | Да | Артикул товара |
| Name | char(50) | — | Нет | Наименование товара |
| Unit | int(11) | BTREE | Нет | Единица измерения |
| GroupProduct | int(11) | BTREE | Нет | Идентификатор группы товара |
«Registration». Таблица зарегистрированных пользователей системы.
Таблица 11 – Структура таблицы «Registration»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор пользователя |
| Login | char(10) | — | Нет | Логин |
| Password | char(10) | — | Нет | Пароль |
«Saldo». Таблица хранит данные об остатках товаров на начало каждого месяца в году.
Таблица 12 – Структура таблицы «Saldo»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор записи об остатке |
| DateS | int(11) | — | Нет | Дата начало месяца |
| Agent | int(11) | BTREE | Нет | Контрагент/склад |
| Product | int(11) | BTREE | Нет | Товар |
| CountS | int(11) | — | Нет | Остаток товара |
«TypePay». Таблица содержит перечень видов оплат.
Таблица 13 – Структура таблицы «TypePay»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор вида оплаты |
| TypePay | char(150) | — | Нет | Наименование вида оплаты |
«Unit». Содержит единицы измерения товара.
Таблица 14 – Структура таблицы «Unit»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор единицы измерения |
| OKEI | char(5) | — | Нет | Код по ОКЕИ |
| Unit | char(15) | — | Да | Наименование единицы измерения |
| UnitShort | char(10) | — | Нет | Сокращенное наименование единицы измерения |
«Vacant». Таблица содержит перечень должностей.
Таблица 15 – Структура таблицы «Vacant»
| Имя поля | Тип | Тип индекса | Допустимость значения Null | Предназначение |
| Key | int(11) | BTREE | Нет | Идентификатор должности |
| Vacant | char(100) | — | Нет | Наименование должности |
Описание связей таблиц базы данных приведены в таблице 16.
Таблица 16 – Связи таблиц базы данных системы
| Первая таблица | Имя первичного ключа | Тип связи | Вторая таблица | Имя вторичного ключа |
| «GroupProduct» | Key | Один ко многим | «Product» | GroupProduct |
| «Vacant» | Key | Один ко многим | «Person» | Vacant |
| «Person» | Key | Один ко многим | «Document» | Person |
| «Person» | Key | Один ко многим | «Agent» | Person |
| «Ownership» | Key | Один ко многим | «Agent» | Ownership |
| «TypePay» | Key | Один ко многим | «Dogovor» | TypePay |
| «Dogovor» | Key | Один ко многим | «Payment» | Dogovor |
| «Dogovor» | Key | Один ко многим | «Document» | Dogovor |
| «Agent» | Key | Один ко многим | «Dogovor» | Agent |
| «Agent» | Key | Один ко многим | «Document» | Agent1 |
| «Agent» | Key | Один ко многим | «Document» | Agent2 |
| «Agent» | Key | Один ко многим | «Oborot» | Agent |
| «Agent» | Key | Один ко многим | «Saldo» | Agent |
| «Product» | Key | Один ко многим | «DocumentTable» | Product |
| «Product» | Key | Один ко многим | «Oborot» | Product |
| «Product» | Key | Один ко многим | «Saldo» | Product |
| «Unit» | Key | Один ко многим | «Product» | Unit |
| «Document» | Key | Один ко многим | «DocumentTable» | Document |
| «Document» | Key | Один ко многим | «Oborot» | Document |
Отобразим схему базы данных MySQL web-сервиса «WebСклад» (рисунок 16).

Рисунок 16 – Схема базы данных web-сервиса «WebСклад»
2.7 Вывод
Данная глава дипломной работы посвящена разработке системы web-сервиса. Для разработки системы выбран язык программирования PHP5 и его расширения, локальный сервер Apache, система управления базами данных MySQL.
Разработан контент и дизайн web-сервиса «WebСклад». Спроектировано три типа форм пользовательского интерфейса системы для ввода, редактирования и просмотра данных системы.
Разработанная логическая структура базы данных MySQL web-сервиса «WebСклад» была описана и реализована в виде таблиц и отношений между таблицами.
Глава 3. Программная реализация web-сервиса для отслеживания складских остатков
3.1 Инструкция пользователя web-сервиса
Название системы: Web-сервис «WebСклад».
Перед работой в системе «WebСклад» необходимо пройти авторизацию. Для этого в левой панели сайта (рисунок 17) введите свой логин и пароль и нажмите кнопку «Войти».
Рисунок 17 – Компонент авторизации в web-сервисе «WebСклад»
В противном случае в верхней части web-сервиса «WebСклад» будет написано предупреждающее сообщение, изображенное на рисунке 18.
Рисунок 18 – Сообщение web-сервиса «WebСклад»
При попытке войти в любой пункт меню web-сервиса «WebСклад» система сообщи, что для работы в системе нужно авторизироваться (рисунок 19).
Рисунок 19 – Сообщение web-сервиса «WebСклад»
Если логин или пароль введены неверно или такой пользователь не зарегистрирован, системе сообщит об этом (рисунок 20).
Рисунок 20 – Сообщение web-сервиса «WebСклад»
При удачной авторизации пользователя в системе «WebСклад» в верхней панели сайта будет изменен заголовок с именем пользователя, как изображен на рисунке 21.
Рисунок 21 – Сообщение web-сервиса «WebСклад»
Работу в системе желательно начинать с заполнения справочников и информацией об организации.
Для ввода реквизитов организации нужно зайти в пункт меню «Настройки®Организация» (рисунок 22).
Рисунок 22 – Пункт меню «Настройки®Организация»
После нажатия пункта меню, открывается форма для редактирования реквизитов организации (рисунок 23).
Рисунок 23 – Форма редактирования реквизитов организации
Чтобы сохранить внесенные изменения достаточно нажать на кнопку «Сохранить».
Система «WebСклад» содержит следующие справочники:
— Контрагенты;
— Сотрудники;
— Должности;
— Договора;
— Тип товара;
— Товары;
— Единицы измерения;
— Тип оплаты.
Для заполнения справочников существует два способа доступа:
— через пункт меню «Настройки®Организация» (рисунок 21),
— непосредственно в форме редактирования реквизитов организации (рисунок 22).
Справочник представлен в виде списка, в верхней которого содержатся кнопки для добавления и удаления записи «Добавить» и «Удалить» соответственно. В центральной части формы находится таблица, заголовком которой является название полей справочника. Самым первым столбцом таблицы является «флажок» для группового удаления записей. Редактирование записей справочника с помощью нажатия «галочки» напротив каждой записи .
Справочник сотрудников в виде списка представлен на рисунке 24.
Рисунок 24 – Справочник «Сотрудники» в виде списка
Формы ввода новой записи в справочник состоят из текстовых полей, выпадающих списков и кнопок. Рассмотрим форму ввода и редактирования справочника.
Добавление новой записи в справочники возможно с помощью кнопки «Добавить» в верхней панели формы списка справочника. После нажатия открывается форма для ввода значений полей справочника, как показано на рисунке 25. После того, как пользователь заполнил все поля формы, запись в справочник добавиться после нажатия кнопки «Сохранить». Отмена ввода новой записи в справочник происходит по нажатию кнопки «Отмена».
Рисунок 25 – Форма справочника «Товары»
После заполнения справочников, можно переходить к созданию складских документов: приходные и расходные ордера, накладные на внутреннее перемещение.
Для этого нужно выбрать пункт меню «Документы» (рисунок 26).
Рисунок 26 – Форма списка электронных складских документов
Работа со списком складских документов и интерфейс аналогичен работе со списком справочников. Список документов упорядочен по дате. Для наглядности вид складского документа выделен цветом «галочки» следующим образом:
— приходные ордера – зеленый цвет,
— расходные ордера – красный цвет,
— накладные на внутреннее перемещение – синий цвет.
После нажатия на «галочку» открывается форма редактирования складского документа, представленная на рисунке 27.
Рисунок 27 – Форма складского документа
Форма документа состоит из двух панелей. В верхней панели формы вводятся реквизиты складского документа:
— поле Операция – выбирается из выпадающего списка значений: приходование, списание и внутреннее перемещение;
— поле Договор – выбирается из выпадающего списка значений справочника «Договора»;
— поле Номер – вводится с клавиатуры вручную;
— поле Дата – выбирается из календаря;
— поля Отпускающий и Принимающий – выбирается из выпадающего списка значений справочника «Организации».
Табличная часть представляет собой спецификацию складского документа и содержит всего два поля для заполнения:
— поле Товар – выбирается из выпадающего списка значений: справочника «Товары».
— поле Количество – вводится с клавиатуры вручную.
Для ввода новой записи следует проделать следующую операцию:
— заполнить поля Товар и Количество в табличной части формы документа;
— нажать кнопку .
Удаление записей табличной части документа с помощью кнопки . Кнопки «Сохранить» и «Отмена» позволяют сохранить или отменить внесенные изменения соответственно.
Пункт выпадающего меню «Операции» web-сервиса «WebСклад» используется для отражения факта совершения хозяйственных операций – движения товара на складе согласно складским документам. Для удобства просмотра пункт состоит из трех разделов: приход, списания и перемещения, для проведения и отмены движения по типам складских документов. Список документов аналогичен перечню складских документов и упорядочен по дате документа. Для проведения и отмены движения нужно проставить «галочку» напротив тех документов, которые будут обработаны и нажать кнопку «Провести движение» для отражения факта перемещения товара на складе или отменить с помощью кнопки «Отменить движение» (рисунок 28).
Рисунок 28 – Выполнение операций над складскими документами
Раздел меню «Операции» web-сервиса «WebСклад» позволяет просматривать приход, списание и остатки товаров внутри предприятия. Перечень отчетов показан на рисунке 29.
Рисунок 29 – Перечень отчетов web-сервиса «WebСклад»
Каждый из трех отчетов имеет свою предотчетную форму для задания параметров отчета. Для отчетов «Отчет о приходуемом товаре» и отчета «Отчет о проданном товаре» задаются следующие параметры:
— Начало периода – дата начала периода для отбора;
— Конец периода – дата конца периода для отбора;
— Организация – склад или организация, на который был оприходован или списан товар.
Рисунок 30 – Параметры отчета «Отчет о приходуемом товаре»
Поля Начало периода и Конец периода выбираются из календаря дат, а поле Организация выбирается из списка справочника «Организации».
Для формирования отчета нужно нажать на кнопку «Сформировать».
Для рисования диаграммы нужно нажать на иконку .
Отчет «Остатки товара» имеет только один параметр – дату, на которую формируются остатки (рисунок 31).
Рисунок 31 – Параметры отчета «Остатки товара»
После нажатия на кнопку «Сформировать», результат отчета выводится в нижней панели и представлен в виде таблице с тремя полями: Организация, Товар и Количество.
Рисунок 32 – Результат отчета «Остатки товара»
После нажатия на иконку , выводится график в нижней панели, где ось абцисс — Товар , а ось ординат — Количество.
Рисунок 33 – График «Остатки товара»
Иногда отчет может содержать несколько десятков записей, поэтому для перехода на начало отчета предусмотрена кнопка в нижней части страницы.
После работы в системе «WebСклад» пользователь должен выйти, нажав на ссылку «Выход» в верхнем правом углу страницы.
3.2 Инструкция программиста web-сервиса
Структура файлов web-сервиса «WebСклад» представлена на рисунке 34:
Рисунок 34 – Структура web-сервиса «WebСклад»
В состав каталога Z:\home\localhost\www\webSklad входят 6 папок и 70 файлов с расширением «php».
В папке «css» хранится файл описания стилей сайта, а папках «ground» и «images» картинки для создания стиля сайта.
Папка «fonts» содержит стили шрифтов для прорисовки графиков. Папка «pChartPic» используется для хранения графиков, формируемых пользователем. Папка «pChart» содержит это php-библиотека для создания графиков, гистограмм и диаграмм.
Чтобы понять взаимосвязь между скриптами сайта, изобразим его в виде схемы (рисунок 35).
Рисунок 35 – Логическая структура web-сервиса «WebСклад»
Рисунок 35 – Логическая структура web-сервиса «WebСклад»
3.3 Тестирование разработанного web-сервиса
Тестирование web-сервиса начнем с входа в систему. Введем следующую пару логин-пароль: menedger1 – 321, как показано на рисунке 33.
Рисунок 36 – Авторизация в системе
В результате успешной авторизации шапка страницы измениться (рисунок 37).
Рисунок 37 – Данные об авторизированном пользователе
Далее введем данные в справочник контрагентов, для этого зайдем в пункт меню «Настройка®Контрагенты» и нажмем кнопку Добавить.
В форме ввода новой записи справочника укажем следующую информацию:
Рисунок 38 – Создание записи справочника
После нажатия кнопки «Сохранить» система выдаст следующее сообщение.
Рисунок 39 – Сообщение web-сервиса «WebСклад»
По нажатию на ссылку «Справочник контрагентов «WebСклад» перейдем на список справочника «Организации», где данный контрагент появится в списке организаций (рисунок 40).
Рисунок 40 – Результата добавления записи в справочник
Для ввода складского документа на внутренне перемещение перейдем в раздел «Документы» и нажмем кнопку «Добавить». В появившемся окне заполним следующие данные, как показано на рисунке 41.
Рисунок 41 – Документ на внутренне перемещение
После нажатия на кнопку «Сохранить» система закроет форму ввода документа и перейдет на перечень складских документов. Убедимся, что наш введенный документ добавлен в список.
Рисунок 42 – Результат добавления складского документа
Рисунок 43 – Результат отчета «Остатки товара»
До проведения документа в системе сформирует отчет о складских остатках на дату документа – 01/05/2014. Результат отчета приведен на рисунке 43.
Чтобы отразить факт перемещения товара согласно введенному документу на внутренне перемещение нужно провести документ в разделе меню «Операции®Перемещение». Выделим наш документ под номером «2п» и нажмем кнопку «Провести движение».
Чтобы увидеть результата проведения сформируем все три отчета. Результаты отчетов приведены на рисунках 44-49.
Рисунок 44 – Параметры отчета «Отчет о приходуемом товаре»
Рисунок 45 – Результат отчета «Отчет о приходуемом товаре»
Рисунок 46 – Параметры отчета «Отчет о расходуемом товаре»
Рисунок 47 – Результат отчета «Отчет о расходуемом товаре»
Рисунок 48 – Параметры отчета «Остатки товара»
Рисунок 49 – Результат отчета «Остатки товара»
Рисунок 49 – Результат отчета «Остатки товара»
При отмене проведения документа данные отчета возвращаются в прежнее состояние.
Тестирование web-сервиса «WebСклад» проведено успешно.
Заключение
В результате написания магистерской работы мною было разработан web-сервис отслеживания складских остатков «WebСклад». Для выполнения потребовались следующие инструментальные программные средства:
— язык программирования PHP5 и его расширения,
— локальный сервер Apache,
— система управления базами данных MySQL.
Система автоматизации склада дает предприятию ряд преимуществ, которые позволят существенно сократить себестоимость складских операций и повысить эффективность склада:
— контроль остатков на складе и новых поступлений;
— исключение возможности двойного ввода данных, и как следствие сокращение ошибок;
— полное и быстрое получение информации о нынешнем состоянии бизнеса;
— уменьшение времени обработки и анализа данных;
— присутствие полной и достоверной информационной модели компании, которая позволяет быстро определять проблемы организации учета и принимать определенные меры их ликвидации;
— уменьшение ошибок ввода и снижение роли человеческого фактора;
— повышение скорости работы;
— способность ограничивать доступ персонала к изменению или просмотру определенных данных.
Список литературы
- А.М. Гаджинский, Логистика: Учебник, 20-е изд., М., Издательско-торговая корпорация «Дашков и К», 2012.
- Б.А. Аникина, Т.А. Родкина; Логистика, Учебное пособие, «Проспект», М., 2005.
- Алесинская Т.В. Основы логистики. Функциональные области логистического управления : учеб. пособ. / Т.В. Алесинская. — Таганрог : ТТИ ЮФУ, 2009.
- Волгин В.В. Логистика хранения товаров: Практическое пособие, М., Издательско-торговая корпорация «Дашков и К», 2011.
- Интегрированная логистика накопительно-распределительных комплексов (склады, транспортные узлы, терминалы): Учебник для транспортных вузов. / Под общ. ред. Л.Б. Миротина. — М.: Издательство «Экзамен», 2003.
- Система автоматизации склада. Электронный ресурс. – Режим доступа: http://wms.korusconsulting.ru/inform-center/pages/pages_2.html.
- Разработка SAAS-решений. Электронный ресурс. – Режим доступа: http://ubertek.ru/Uslugi/Razrabotka_SAAS.
- Свободная энциклопедия «Википедия». Электронный ресурс. – Режим доступа: http://ru.wikipedia.org/wiki/SaaS.
- Saas преимущества. Электронный ресурс. – Режим доступа: http://www.inoventica.ru/informacionnyj_centr/tehnologii/saas/saas_preimuwestv.
- Люк Веллинг, Лора Томсон. Разработка веб-приложений с помощью PHP и MySQL. – Вильямс, 2009.
- Компания MySQL AB. Руководство администратора. — М.: Издательский дом «Вильямс», 2005.
- Что такое Apache сервер? Электронный ресурс. – Режим доступа: http://ru.hostings.info/chto-takoe-apache.html.
- Установка Denwer на компьютер. Электронный ресурс. – Режим доступа: http://joomla-create.ru/index.php/ustanovka-denwer.
- Глоссарий. Что такое контент? Электронный ресурс. – Режим доступа: http://glossary.ccteam.ru/k/kontent.html.
- Корректировка контента сайта. Электронный ресурс. – Режим доступа: http://seo-optimizaciya.shtepina.com.ua/4000-prodvizhenie-sayta-poocherednost-zadach.html.
- Печников В.Н. Создание Web-сайтов без посторонней помощи. — М.: Триумф, 2009.
- Notepad ++. Электронный ресурс. – Режим доступа: http://biblprog.org.ua/ru/notepad_plus/.
- Интерфейс сайта. Электронный ресурс. – Режим доступа: http://emagnat.ru/tag/interface.
- Свободная энциклопедия «Википедия». Электронный ресурс. – Режим доступа: http://ru.wikipedia.org/wiki/PhpMyAdmin
- Официальный сайт предприятия «Офис-Сервис». ». Электронный ресурс. – Режим доступа: http://www.oc24.ru/.
Страницы 1 2
