Смекни!
smekni.com

Разработка программного обеспечения поддержки процессов учета хранения товаров на складе (стр. 7 из 14)

Т2 - справочная таблица «Наименования товаров»;

Т3 - справочная таблица «Группы товаров»;

Т4 - справочная таблица «Сотрудники»;

Т5 - справочная таблица «Должности»;

Т6 - справочная таблица «Клиенты»;

Т7 - таблица «Продажи »;

Т8 - таблица «Поставки»;

Т9 - таблица «Заказы»;

Т10 - справочная таблица «Поставщики»;

Т11 - справочная таблица «Банки»;

Т12 - таблица «Списания»;

Т13 - справочная таблица «Причины списания товаров»;

Т14 - таблица «Инвентаризация».

Входные документы Д1-Д4 описаны в таблице 2.4, выходные документы D1-D6 представлены в таблице 2.3.

Рисунок 3.2 – Схема информационной модели системы


3.4 Описание алгоритмов и программ

3.4.1 Описание алгоритма программного модуля расчёт гарантийного запаса товаров

НАЧАТЬ алгоритм программного модуля расчёта гарантийного запаса товаров

ОТОБРАЗИТЬ текущую дату

ОРГАНИЗОВАТЬ меню выбора групп товаров

ЕСЛИ не выбрана группа товаров

ВЫВОД сообщения: «Выберите группу товаров для проведения

анализа»

ИНАЧЕ

GZ.gr = код выбранной группы товаров

ОТКРЫТЬ файл Prodagi

ОТКРЫТЬ файл Postavshiki

ОТКРЫТЬ файл Report_Remainder

ОТКРЫТЬ вспомогательную таблицу GZ

УДАЛИТЬ устаревшую информацию

ОТКРЫТЬ файл Tovary

УСТАНОВИТЬ фильтр с условием: Tovary.group = GZ.gr

ЕСЛИ конец файла

ВЫВОД сообщения: «В справочнике Товары отсутствует информация по товарам группы < GZ.gr >»

АВАРИЙНЫЙ_ВЫХОД

К_Е

ЦИКЛ пока не конец файла Tovary

ПЕРЕЙТИ в рабочую область файла Prodagi

УСТАНОВИТЬ фильтр с условием:

Рисунок 3.3 – Алгоритм расчёт гарантийного запаса товаров

Prodagi.id_tov = коду текущего товара

&& Prodagi.date <= dr && Prodagi.date >= dr-dt

S = 0

ЦИКЛ пока не конец файла Prodagi

S = S + Prodagi.kolvo

К_Ц

PDN = S/dt

ПЕРЕЙТИ в рабочую область файла Postavshiki

УСТАНОВИТЬ фильтр с условием:

Postavhiki.id_post = код поставщика текущего товара

FGZ = (Post.tpost+ Post.zpost)* PDN – PDN* Post.tpost

ПЕРЕЙТИ в рабочую область файла GZ

ДОБАВИТЬ запись в таблицу GZ

GZ.id_tov = коду текущего товара

GZ.kolvo = S

ОТМЕНИТЬ фильтр

ОТМЕНИТЬ фильтр

К_Ц // с переходом на следующую запись

ПЕРЕЙТИ в рабочую область файла Report_Remainder

ЕСЛИ Report_Remainder.kolvo <= GZ.kolvo

ВЫВОД сообщения: «Для товара < GZ.gr > необходимо пополнить запас. Запустить формирование заказа?»

ЕСЛИ выбран пункт меню да

ЗАПУСТИТЬ алгоритм формирования заказа

К_Е

К_Е

ЗАКРЫТЬ файл Tovari

ЗАКРЫТЬ файл Report_Remainder

ЗАКРЫТЬ файл Prodagi

ПЕРЕЙТИ в рабочую область файла GZ

УПОРЯДОЧИТЬ записи в порядке убывания поля GZ.kolvo

ЗАКРЫТЬ файл GZ

К_Е

К_Е

ВЫВОД файла АВС

ЗАКРЫТЬ файл АВС

КОНЕЦ_АЛГОРИТМА

3.4.2 Описание алгоритма программного модуля формирование оптимального размера заказа

НАЧАТЬ алгоритм программного модуля формирование оптимального размера заказа

ОТОБРАЗИТЬ текущую дату

ОРГАНИЗОВАТЬ меню выбора планового периода

ОРГАНИЗОВАТЬ меню выбора группа товаров для пополнения запасов

ЕСЛИ не выбрана группа товаров

ВЫВОД сообщения: «Выберите группу товаров для проведения анализа»

ИНАЧЕ

ORZ.gr = код выбранной группы товаров

ОТКРЫТЬ файл Prodagi

ОТКРЫТЬ файл Zakazi

ОТКРЫТЬ вспомогательную таблицу ORZ

УДАЛИТЬ устаревшую информацию

ОТКРЫТЬ файл Tovary

УСТАНОВИТЬ фильтр с условием: Tovary.group = ORZ.gr

ЕСЛИ конец файла

ВЫВОД сообщения: «В справочнике Товары отсутствует информация по товарам группы < ORZ.gr >»

АВАРИЙНЫЙ_ВЫХОД

К_Е

ЦИКЛ пока не конец файла Tovary

ПЕРЕЙТИ в рабочую область файла Prodagi

УСТАНОВИТЬ фильтр с условием:

Prodagi.id_tov = коду текущего товара

&& Prodagi.date <= dr && Prodagi.date >= dr-dt

S = 0

ЦИКЛ пока не конец файла Prodagi

S = S + Prodagi.kolvo

К_Ц

ПЕРЕЙТИ в рабочую область файла ORZ

ДОБАВИТЬ запись в таблицу ORZ

ORZ.id_tov = коду текущего товара

ORZ.kolvo = S

ОТМЕНИТЬ фильтр

К_Ц // с переходом на следующую запись

ПЕРЕЙТИ в рабочую область файла Tovari

УСТАНОВИТЬ фильтр с условием:

Tovari.id_tov = коду текущего товара

Q=S*

ДОБАВИТЬ запись в таблицу Zakazi

Zakazi.id_tov = коду текущего товара

Zakazi.date = dr

Zakazi.id_post = коду текущего поставщика

Zakazi.kolvo = Q

Zakazi.zena = Q*C

ОТМЕНИТЬ фильтр

ЗАКРЫТЬ файл Tovari

ЗАКРЫТЬ файл Prodagi

К_Е

К_Е

ВЫВОД файла Zakazi

ЗАКРЫТЬ файл Zakazi

КОНЕЦ_АЛГОРИТМА

3.4.3 Описание алгоритма программного модуля формирование отчета «Объем продаж»

НАЧАТЬ алгоритм программного модуля формирования отчета «Объем продаж»

ОРГАНИЗОВАТЬ ввод периода формирования отчета и установки фильтра

по группам товаров

dn = дата начала периода

dk = дата конца периода

ОТКРЫТЬ файл Prodagi

ОТКРЫТЬ файл Report_Prodagi

УДАЛИТЬ устаревшую информацию

ОТКРЫТЬ файл Tovari

УСТАНОВИТЬ фильтр с условием: Tovari.group = выбранной группе

ЕСЛИ конец файла

ВЫВОД сообщения: «В справочнике Товары отсутствует информация по товару из группы <выбранная группа товаров>»

АВАРИЙНЫЙ_ВЫХОД

К_Е

ЦИКЛ пока не конец файла Tovari

ПЕРЕЙТИ в рабочую область файла Prodagi

УСТАНОВИТЬ фильтр с условием: Prodagi.date >= dn && Prodagi.date <= dk

&& Prodagi.id_tov = коду текущего имени товара

Vprod = 0

ЦИКЛ пока не конец файла Sale

Vprod = Vprod + Prodagi.kolvo

К_Ц // с переходом на следующую запись

ДОБАВИТЬ строку в таблицу Report_Sale

Report_Prodagi.id_group = Tovari.id_group

Report_Prodagi.id_tov = Tovari.id_tov

Report_Prodagi.amount = Vprod

ОТМЕНИТЬ фильтр

К_Ц // с переходом на следующую запись

ОТМЕНИТЬ фильтр

ЗАКРЫТЬ файлы Report_Prodagi, Prodagi

КОНЕЦ_АЛГОРИТМА

3.4.4 Описание алгоритма программного модуля формирование отчета «Ведомость остатков»

НАЧАТЬ алгоритм программного модуля формирования отчета «Ведомость остатков»

ОРГАНИЗОВАТЬ ввод периода формирования отчета и установки фильтра по группам товаров

dn = дата начала периода

dk = дата конца периода

ОТКРЫТЬ файлы Tovari, Prodagi, Spisaniya

ОТКРЫТЬ файл Report_Remainder

УДАЛИТЬ устаревшую информацию

ОТКРЫТЬ файл Tovari

ЕСЛИ установлен фильтр по группе товаров

УСТАНОВИТЬ фильтр с условием: Tovari.group = выбранной группе

К_Е

ЕСЛИ конец файла

ВЫВОД сообщения: «В справочнике Товары отсутствует информация по товару из группы <выбранная группа товаров»

АВАРИЙНЫЙ_ВЫХОД

К_Е

ЦИКЛ пока не конец файла Tovari

ПЕРЕЙТИ в рабочую область файла Prodagi

УСТАНОВИТЬ фильтр с условием:

Sale.date >= dn && Prodagi.date = dk &&

Prodagi.id_tov = коду текущего имени товара

Vprod = 0

ЦИКЛ пока не конец файла Tovari

Vprod = Vprod + Prodagi.kolvo

К_Ц // с переходом на следующую запись

ОТМЕНИТЬ фильтр

ПЕРЕЙТИ в рабочую область файла Postavki

УСТАНОВИТЬ фильтр с условием:

Postavki.date = dn && Postavki.date = dk &&

Postavki.id_tov = коду текущего имени товара

ЦИКЛ пока не конец файла Postavki

Vprod = Vprod - Postavki.kolvo

К_Ц // с переходом на следующую запись

ОТМЕНИТЬ фильтр

ПЕРЕЙТИ в рабочую область файла Spisaniya

УСТАНОВИТЬ фильтр с условием:

Spisaniya.date = dn && Spisaniya.date = dk &&

Spisaniya.id_tov = коду текущего имени товара

ЦИКЛ пока не конец файла Spisaniya

Vprod = Vprod - Spisaniya.kolvo

К_Ц // с переходом на следующую запись

ОТМЕНИТЬ фильтр

ДОБАВИТЬ строку в таблицу Report_Prodagi

Report_ Remainder.id_group = Tovari.id_group

Report_ Remainder.id_tov = Tovari.id_tov

Report_ Remainder.kolvo = Vprod

К_Ц // с переходом на следующую запись

ОТМЕНИТЬ фильтр

ЗАКРЫТЬ файлы Report_Remainder, Tovari, Postavki, Spisaniya

КОНЕЦ_АЛГОРИТМА

3.4.5 Описание алгоритма программного модуля формирование отчета «Списания товаров»

НАЧАТЬ алгоритм программного модуля формирования отчета «Списания товаров»

ОРГАНИЗОВАТЬ ввод периода формирования отчета и установки фильтра

по группам товаров

dn = дата начала периода

dk = дата конца периода

ОТКРЫТЬ файл Spisaniya

ОТКРЫТЬ файл Report_ Spisaniya

УДАЛИТЬ устаревшую информацию

ОТКРЫТЬ файл Tovari

ЕСЛИ установлен фильтр по группе товаров

УСТАНОВИТЬ фильтр с условием: Tovari.group = выбранной группе

К_Е

ЕСЛИ конец файла

ВЫВОД сообщения: «В справочнике Товары отсутствует информация по товару из группы <выбранная группа товаров>»

АВАРИЙНЫЙ_ВЫХОД

К_Е

ЦИКЛ пока не конец файла Tovari

ПЕРЕЙТИ в рабочую область файла Write_off

УСТАНОВИТЬ фильтр с условием:

Spisaniya.date >= dn && Spisaniya.date <= dk &&

Spisaniya.id_name = коду текущего имени товара

Vprod = 0

ЦИКЛ пока не конец файла Spisaniya

Vprod = Vprod + Spisaniya.kolvo

К_Ц // с переходом на следующую запись

ДОБАВИТЬ строку в таблицу Report_Spisaniya

Report_ Spisaniya.id_group = Tovari.id_group

Report_ Spisaniya.id_tov = Tovari.id_tov

Report_ Spisaniya.kolvo = Vprod

ОТМЕНИТЬ фильтр

К_Ц // с переходом на следующую запись

ОТМЕНИТЬ фильтр

ЗАКРЫТЬ файлы Report_ Spisaniya, Spisaniya

КОНЕЦ_АЛГОРИТМА

Продолжение Рисунка 3.7

3.5 Контрольный пример

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

Рисунок 3.8 – Экранная форма идентификации пользователя

Диалог системы и пользователя организован на основе меню. Меню системы представлено на рисунке 3.9.

Главное меню программы содержит пять основных разделов: «Документы», «Правка», «Справочники», «Отчёты», «Справка». Рассмотрим подробнее каждый из них.

В разделе «Документы» выделены следующие подразделы:

- «Поступления»;

- «Продажи»;

- «Списания»;

- «Инвентаризация».

Эти подразделы предназначены для ввода документов «Приходная накладная», «Расходная накладная», «Акт на списание» и «Инвентаризационная ведомость».

Рассмотрим их работу на примере подпункта меню «Расход».