Реферат: Разработка программного обеспечения поддержки процессов закупа и учёта хранения товаров на склад

--PAGE_BREAK--
Введение
Управление товарными ресурсами в компании предполагает планирование и прогнозирование  деятельности предприятия. Проведение анализа большого количества информации по истории продаж, поставок, товарных запасов, списаний и т.д. А также  расчёт оптимальных размеров товарных запасов и дальнейшего планирования размеров и номенклатуры заказов поставок необходимых для поддержания эффективного функционирования склада. Оптимизация уровня  товарных запасов на предприятии встает в связи проблемой содержания запасов, с одной стороны нужно избежать переполнения товаров на складах, и с другой  стороны нежелательно допускать отсутствия необходимого товара длительное время. Одним из наиболее известных и эффективных методов анализа товарных запасов является формула Вильсона. А также распределение товаров на складах в зависимости от стабильности продаж, при помощи методов ABC— анализа.

Объектом автоматизации является ЗАО «Аптека-Холдинг» -  крупная компания на рынке фармацевтических препаратов. Компания занимается оптовой и розничной торговлей большой номенклатуры лекарственных средств, охватывающих весь спектр необходимых фармацевтических препаратов.

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

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

·        системный анализ работы логистика;

·        построение схемы информационного взаимодействия отдела логистики с другими подразделениями предприятия;

·        определение состава автоматизируемых задач;

·        постановка задач системы;

·        разработка технологии функционирования системы в условиях автоматизированного управления;

·        определение структуры базы данных системы, построение информационной модели системы;

·        построение интерфейса взаимодействия пользователя с системой;

·        разработка алгоритмов;

·        отладка и  тестирование программного обеспечения системы;

·        оформление проекта системы, включая подготовку руководства пользователя.
1 Описание предметной области

 

1.1 Обзор систем организации управления предприятия

В конце 60-х годов, в связи с бурным развитием вычислительной техники, ее возможности перестали быть востребуемы только отдельными наукоёмкими отраслями, компьютерные системы прочно входили в повседневную деловую жизнь. Повсюду начались активные попытки оптимальной автоматизации и информатизации бизнеса, создавались новые концепции управления и совершенствовались уже существующие. Основными целями автоматизации производственных компаний являлись: точный расчет актуальной себестоимости продукции, ее анализ, понижение затрат в процессе производства и повышение производительности в целом, благодаря эффективному планированию производственных мощностей и ресурсов. Результатом оптимизации этих параметров являлись понижение конечной цены готовых изделий и повышение общей производительности, что соответственно немедленно отражалось на конкурентоспособности и рентабельности компании. В результате поиска решений в области автоматизации производственных систем родилась концепция планирования потребностей в материалах (MRP). По сути, MRP-методология представляет собой алгоритм оптимального управления заказами на готовую продукцию, производством и запасами сырья и материалов, реализуемый с помощью компьютерной системы. Другими словами, MRP система позволяла оптимально загружать производственные мощности, и при этом закупать именно столько материалов и сырья, сколько необходимо для выполнения текущего плана заказов и именно столько, сколько возможно обработать за соответствующий цикл производства. Тем самым планирование текущейпотребности в материалах позволяло разгрузить склады как и сырья и комплектующих (сырье и комплектующие закупались ровно в том объеме, который можно обработать за один производственный цикл и поступались прямо в производственные цеха), так и склады готовой продукции (производство шло в строгом соответствии с принятым планом заказов, и продукция, относящаяся к текущему заказу, должна быть произведена ровно к сроку его исполнения (отгрузки)). Собственно методология MRP является реализацией двух известных принципов JIT (Just In Time – Вовремя заказать) и KanBan (Вовремя произвести). Разумеется, идеальная реализация концепции MRP невыполнима в реальной жизни. Например, из-за возможности срыва сроков поставок по различным причинам и последующей остановки производства в результате этого. Поэтому в жизненных реализациях MRP-систем на каждый случай предусмотрен заранее определенный страховой запас сырья и комплектующих (safety stock), объем которого определяется компетентным руководством компании.

         После появления концепции MRP, казалось бы, все основные проблемы производства были решены, активно создавались и продавались компьютерные программы, реализующие принципы этой концепции. Однако в процессе дальнейшего анализа существующей ситуации в мировом бизнесе и ее развития, выяснилось, что всю большую составляющую себестоимости продукции занимают затраты напрямую не связанные с процессом и объемом производства. В связи с растущей от года к году конкуренцией, конечные потребители продукции становятся все более “избалованными”, ощутимо увеличиваются затраты на рекламу и маркетинг, уменьшается жизненный цикл изделий. Всё это требует пересмотрения взглядов на планирование коммерческой деятельности. Отныне нужно не “что-то производить и стараться потом продать”, а “стараться производить, то, что продается”. Таким образом, маркетинг и планирование продаж должны быть непосредственно связаны с планированием производства.

В 90-х годах методы MRPбыли модифицированы и улучшены, в связи с этим  появились такие системы,  какMRP II (Manufacturing Resource Planning) – это планирование производственных ресурсов и ERP (Enterprise Resource Planning) – это планирование потребностей предприятий в материалах. Преимущества, даваемые этими методами, состоят в минимизации издержек, связанных со складскими запасами сырья, комплектующих, полуфабрикатов и прочего, а также с аналогичными запасами, находящимися на различных участках непосредственно в производстве.

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

Мировой опыт показывает, что успеха достигают те компании, которые балансируют производственные, коммерческие и финансовые цели. Рассматривают предприятие как единую производственно-сбытовую систему (ПСС), связывающую воедино такие сферы как:  маркетинг – создание новых изделий – снабжение – производство – сбыт – доставка продукции потребителю – сервисное обслуживание,  и используют промышленные стандарты MRP/ERP в качестве базовой бизнес — модели, нацеленной на достижение экономической эффективности.

Рассмотрим концепцию MRPIIпоподробнее, так как на основе этой концепции будет проектироваться дипломный проект.

В системах класса MRP II содержатся следующие функции производственно — сбытовой системы:

-                   Планирование продаж и производства (Sales and Operation Planning);

-                   Управление спросом (Demand Management);

-                   Составление плана производства (Master Production Scheduling);

-                   Планирование материальных потребностей (MRP — Material Requirement Planning);

-                   Управлениезапасами(Inventory Transaction Subsystem);

-                   Управление плановыми поставками (Scheduled Receipts Subsystem);

-                   Планирование производственных мощностей (CRP – Capacity Requirement Planning);

-                   Материально техническое снабжение (Purchasing);

-                   Планирование ресурсов для распределения (DRP – Distribution Resource Planning);

-                   Планирование и контроль производственных операций (Tooling Planning and Control);

-                   Управление финансами (Financial Planning);

-                   Моделирование для производственной программы (Simulation);

-                   Оценка результатов деятельности (Performance Measurement).
Управление запасами, эта подсистема обеспечивает реализацию следующих функций:

—  Inventory Control – мониторинг запасов;

—  Physical Inventory – регулирование и инвентаризация складских остатков.

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

Управления снабжением, эта подсистема реализует следующие функции:

 Purchase Orders — заказыназакупку;

 Supplier Schedules — графикпоставок;

 MRP — планирование потребности в материалах, понимаемое как управление заявками на закупку.

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

Результаты использования интегрированных систем стандарта MRP II:

— получение оперативной информации о текущих результатах деятельности предприятия как в целом, так и с полной детализацией по отдельным заказам, видам ресурсов, выполнению планов;

— долгосрочное, оперативное и детальное планирование деятельности предприятия с возможностью корректировки плановых данных на основе оперативной информации;

— решение задач оптимизации производственных и материальных потоков;

— реальное сокращение материальных ресурсов на складах;

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

— автоматизация работ  отдела с полным контролем за платежами, отгрузкой продукции и сроками выполнения договорных обязательств;

— значительное сокращение непроизводственных затрат;

— возможность поэтапного внедрения системы, с учетом инвестиционной политики конкретного предприятия.

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

На мировом рынке сейчас предлагается свыше 500 систем класса MRP II-ERP. Рынок бурно растет — на 35% — 40% каждый год. В настоящее время в России присутствуют около десятка западных систем, таких как: BAANIV, SAPR3, ORACLEApplications, QADMFG/PROи несколько отечественные информационные системы – СПЕКТР, Практик–А, Тектон, которые можно отнести к корпоративным. Типовая стоимость проекта по внедрению такой системы составляет от 50 до 250 тысяч долларов для тиражно — заказных систем, и до 20 тысяч — для тиражируемых, или «коробочных».  

На сегодняшний момент в состав MPRсистем входит множествометодов, включая методы расчёта оптимальных размеров товарных запасов и их распределения, а также методы расчёта оптимальных размеров заказов. В данной работе мы воспользуемся несколькими из таких методов – формулой расчёта размера оптимальных размеров заказов — формулой Вильсона, и методов АВС и XYZ— анализов для распределения товаров на складе.
1.2 Характеристика объекта автоматизации

ЗАО «Аптека-Холдинг» — крупная фармацевтическая компания, занимающаяся реализацией и производством большого ассортимента лекарственных препаратов. Компания является одним из крупнейших в Сибири дистрибьютором крупных Российских и иностранных  заводов по производству фармацевтических  материалов.  Также  ЗАО «Аптека-Холдинг» имеет ряд филиалов в городах Сибирского региона. В компании работают: региональный департамент сбыта, корпоративный департамент сбыта и городской (Новосибирский) департамент сбыта. Статус официальных представителей заводов позволяет вести гибкую ценовую политику с клиентами, формировать большие объемы поставок и варьировать сроки поставок.

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

Рассмотрим подробнее структуру работы отделов, которые затронет  автоматизация предприятия.

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

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

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

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

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

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

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

На рисунке 1.1 введены следующие обозначения:

Ф1 – филиал №1;

Ф2 – филиал №2;

Фn– филиал №n;

Корпоративный ДС – корпоративный департамент сбыта;

Региональный ДС – региональный департамент сбыта;

1 – заявка на формирование заказа от покупателя;

2 – заявка на формирование заказа от филиалов, департаментов сбыта;

3 – расходная накладная;

4 – счёт, счёт-фактура клиенту; 

5 – сведения о продажах, поставках и об остатках на складе;

6 – заявка поставщикам на оформление заказа от департамента поставок;

7 – приходная накладная, счет-фактура;

8 – сведения о поставках.

<img width=«29» height=«40» src=«ref-2_1317096700-87.coolpic» alt=«Подпись: 1» v:shapes="_x0000_s1206"><img width=«612» height=«708» src=«ref-2_1317096787-8592.coolpic» v:shapes="_x0000_s1138 _x0000_s1139 _x0000_s1140 _x0000_s1141 _x0000_s1142 _x0000_s1143 _x0000_s1144 _x0000_s1146 _x0000_s1147 _x0000_s1148 _x0000_s1150 _x0000_s1151 _x0000_s1152 _x0000_s1154 _x0000_s1160 _x0000_s1161 _x0000_s1163 _x0000_s1164 _x0000_s1165 _x0000_s1166 _x0000_s1167 _x0000_s1169 _x0000_s1170 _x0000_s1171 _x0000_s1172 _x0000_s1174 _x0000_s1176 _x0000_s1177 _x0000_s1178 _x0000_s1186 _x0000_s1187 _x0000_s1188 _x0000_s1189 _x0000_s1190 _x0000_s1191 _x0000_s1192 _x0000_s1194 _x0000_s1195 _x0000_s1196 _x0000_s1197 _x0000_s1199 _x0000_s1200 _x0000_s1201 _x0000_s1203 _x0000_s1204 _x0000_s1205 _x0000_s1208 _x0000_s1209 _x0000_s1210 _x0000_s1211 _x0000_s1212 _x0000_s1213 _x0000_s1214 _x0000_s1215 _x0000_s1216 _x0000_s1217 _x0000_s1274"><img width=«612» height=«708» src=«ref-2_1317105379-73.coolpic» v:shapes="_x0000_i1043">
2 Описание постановки задач системы
2.1 Общая характеристика задач

На основе анализа функционирования компании можно выделить следующие задачи:

— «Учет прихода товара на склад» (Z1);

— «Учет расхода товара со склада» (Z2);

— «Учет инвентаризации товара» (Z3);

— «Формирование оптимального размера заказов» (Z4);

— «Распределение товара на складе» (Z5);

— «Формирование отчета «Объем продаж за период»» (Z6);

— «Формирование отчета «Ведомость остатков»» (Z7);

— «Ведение справочников системы» (Z8).
Задачу Z1целесообразно разделить на подзадачи:

— «Добавление записей в справочник «Поставки»» (Z11);

— «Добавление новых видов товаров» (Z12);

— «Добавление новых групп товаров» (Z13);

— «Добавление новых поставщиков» (Z14);

— «Формирование отчета «Приходная ведомость»» (Z15).

Задачу Z2целесообразно разделить на подзадачи:

— «Учет списанного товара со склада» (Z21);

— «Учет проданного товара со склада» (Z22)

— «Формирование отчета «Ведомость остатков»» (Z23).

Задачу Z3целесообразно разделить на следующие подзадачи:

— «Введение данных по инвентаризации» (Z31);

— «Формирование отчета «Акт о недостаче» (Z32);

Задачу Z4можно представить как:

— «Расчёт затрат на хранение товарных запасов» (Z41);

— «Определение гарантийного запаса товаров» (Z42);

— «Формирование оптимального размера заказов» (Z43);

Рассмотрим подробнее каждую из поставленных задач.

Ежедневно на склады поставляется товар различной номенклатуры от разных поставщиков (Z1). Все поставки необходимо фиксировать и заносить сведения в БД (Z11), такие как наименование товара, объем поставки, дата поставки, фасовка, поставщик. Так же периодически привозят новые товары (Z12), относящиеся к новым группам товаров (Z13), от новых поставщиков (Z14). Следовательно, эти позиции необходимо добавить в справочники системы (БД). Для коррекции приходной накладной и проверке введенных данных необходимо сформировать отчет «Приходная ведомость» (Z16).

Со склада идут постоянные отгрузки товаров покупателям (Z2), а также формирование машин для региональных, городских заказчиков и филиалов. Необходимо вести учёт отгруженных товаров (Z21), вносить данные о них в БД, такие как наименование товара, объем отгрузки, дата отгрузки, фасовка, заказчик. Иногда некоторые товары со склада списывают, по причине заводского брака, порчи и невостребованности товара. При этом также заносятся сведения в БД (Z22) о списанных товарах, причине списания, объём списания, дата списания. После занесения данных в БД формируется отчет «Ведомость остатков».

Один раз в год на складе проводится инвентаризация (Z3) товаров на складах. Для корректной работы системы необходимо учитывать результаты инвентаризации и заносить их в БД (Z31). Для сверки «Инвентаризационной ведомости» с данными, хранящимися в БД, необходимо сформировать отчет «Акт о недостаче» (Z32), в зависимости от результатов сопоставления «Инвентаризационной ведомости» с «Ведомостью остатков», сформированной по данным из БД.     

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

                      <img width=«347» height=«433» src=«ref-2_1317105452-25041.coolpic» v:shapes="_x0000_i1025">

         Рисунок 2.1 Зависимость среднего уровня запасов от размеров заказов.


В состав общих затрат по созданию и поддержанию запасов входят:

1) затраты на хранение запаса;
          2) стоимость размещения заказа;
          3) стоимость закупки партии, восполняющей запас, или стоимость заказа.

Затраты на хранение запаса в общем случае имеют прямо пропорциональную зависимость от размера заказа: чем большим количеством  заказов пополняется запас, тем дороже стоит содержание запаса.
Общепринятым подходом к расчету среднего уровня запаса является то, что средний уровень запаса при восполнении его партиями по Q единиц равен половине этой величины, то есть Q/2. Следовательно, формула расчёта затрат на хранение будет иметь вид:

         T = Q/2*I + S/Q*A + C*S, где                                                  (2.1)
       T– общие затраты на создание и поддержание запаса;

Q– размер заказа, восполняющего запас;

I– затраты на хранение единицы товара в плановом периоде времени;

S– потребность в запасе в плановом периоде;

A– стоимость размещения одного заказа;

С – цена единицы запаса.

В общем виде общие затраты можно представить как:

   T= Затраты на хранение + Стоимость размещения заказа + Цена заказа                           


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

     <img width=«162» height=«62» src=«ref-2_1317130493-833.coolpic» v:shapes="_x0000_i1044"> , где                                                                   (2.2)
          Q* — оптимальный размер заказа;

          I– затраты на хранение единицы товара в плановом периоде времени;

          S– потребность в запасе в плановом периоде;

          A– стоимость размещения одного заказа;

С – цена единицы запаса.  

Когда количество товаров на складе достигает  гарантийного запаса (Z42), логистик склада начинает формировать заказ на пополнение заканчивающихся на складе товаров, необходимых для поддержки эффективного функционирования склада. Для подсчёта гарантийного запаса применим следующую формулу: 

R= (tn+tз)* Pдн   — P0    где,                                                                         (2.3)

      tn– время поставки;

      tз – возможная задержка поставки;

      Pдн – ожидаемое дневное потребление товара;

      P0 – ожидаемое потребление за время поставки.

      Pдн  — рассчитывается как, потребность в товаре за период — S/T

При формировании оптимального размера заказов – ОРЗ (Z43), чаще всего работают с многономенклатурными заказами, когда в одной партии поставляются разные виды товаров. Для расчета ОРЗ товара каждого наименования необходимо воспользоваться данной модификацией формулы Вильсона:

    <img width=«180» height=«62» src=«ref-2_1317131326-840.coolpic» v:shapes="_x0000_i1045"> где,                                                                (2.4)    продолжение
--PAGE_BREAK--
Si  – потребность в запасе i-го наименования в плановом периоде;
          А – стоимость размещения одного заказа;
          <img width=«19» height=«33» src=«ref-2_1317132166-192.coolpic» v:shapes="_x0000_i1046"> – вектор потребностей в запасе различных наименований в плановом периоде времени, включает в себя множество чисел, соответствующее количеству наименований товаров в поставке; например, вектор со значениями (5; 7; 10; 12) соответствует работе с четырьмя наименованиями товаров в одном заказе; при этом в плановом периоде должен быть обеспечен запас товаров  первого наименования в объеме 5 единиц, второго — 7 единиц и т. д.;
         <img width=«16» height=«29» src=«ref-2_1317132358-152.coolpic» v:shapes="_x0000_i1047"> – вектор затрат на хранение единицы запаса различных наименований в плановом периоде времени (денежные единицы измерения/единица запаса); включает в себя множество чисел, соответствующее количеству наименований товаров в поставке; например, вектор со значениями (28; 32; 30; 40) соответствует работе с четырьмя наименованиями товаров в одном заказе; при этом затраты на хранение на единицу запаса товара первого наименования составляют 28 единиц, второго — 32 единицы и т. д.;
<img width=«38» height=«27» src=«ref-2_1317132510-252.coolpic» v:shapes="_x0000_i1048"> – произведение векторов, которое рассчитывается в данном случае как сумма произведений потребности в запасах на плановый период времени и затрат на хранение единицы запасов соответствующего наименования (в рассматриваемом примере: 5*28+7*32+10*30+12*40 = 1144 единицы).

Также некоторые поставщики дают скидку на большие оптовые закупки. Следовательно, чем больше объём заказа, тем ниже закупочные цены на приобретаемый товар. Каждой цене соответствует определённый диапазон объёма товаров. Для расчёта данного случая, можно применить следующую модификацию формулы Вильсона:  

   <img width=«170» height=«62» src=«ref-2_1317132762-856.coolpic» v:shapes="_x0000_i1049">где,                                                                     (2.5)

       I– затраты на хранение единицы товара в плановом периоде времени;

       S– потребность в запасе в плановом периоде;

      A– стоимость размещения одного заказа;

       i– доля цены продукции, приходящейся на затраты по хранению;

       С – цена единицы запаса.  

Для распределения товара на складе (Z5) воспользуемся методами анализа товарного запаса на складе. Одним из наиболее известных методов является АВС – анализ. Идея АВС – анализа основана на принципе Парето, который формулируется следующим образом: «За большинство возможных результатов отвечает относительное небольшое число причин». В настоящее время этот принцип широко известен как «правило 20 на 80».

АВС – анализ будем проводить по объему продаж за период. В результате получим 3 группы товаров:

— группа А – товар, который лучше всего продается; эта группа составляет 20% ассортимента и 49% общего объема продаж;

— группа В – товар, который хорошо продается; эта группа составляет 30% ассортимента и 30% общего объема продаж;

— группа С – товар этой группы составляет 50% ассортимента и 21% общего объема продаж; в эту группу попадает весь «ассортиментный хвост».

Нередко АВС – анализ рассматривают в совокупности с XYZ– анализом. Основная идея XYZ– анализа состоит в группировании товара по однородности анализируемых параметров, другими словами по коэффициенту вариации. 

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

Коэффициент вариации рассчитывается по формуле (2.6).

   <img width=«128» height=«81» src=«ref-2_1317133618-539.coolpic» v:shapes="_x0000_i1050"> ,                                                                         (2.6)   

где  ν – коэффициент вариации;

       σ – среднее квадратическое (стандартное) отклонение;

       <img width=«19» height=«28» src=«ref-2_1317134157-97.coolpic» v:shapes="_x0000_i1051"> — среднее значение.

Величина среднего квадратического отклонения позволяет оценить меру рассеивания значений вариантов относительно среднего арифметического. Чем меньше среднее квадратическое отклонение, тем ближе к среднему находится значение. Среднее квадратическое отклонение вариационного ряда рассчитывается  по формуле (2.7).

         <img width=«180» height=«91» src=«ref-2_1317134254-916.coolpic» v:shapes="_x0000_i1052">  ,                                                                      (2.7)

где   <img width=«24» height=«32» src=«ref-2_1317135170-179.coolpic» v:shapes="_x0000_i1053">  — значение i-го периода;

         <img width=«20» height=«30» src=«ref-2_1317135349-175.coolpic» v:shapes="_x0000_i1054">  — среднее значение за nпериодов;

          n– количество периодов.

При проведении XYZ– анализа товары группируются по величине коэффициента вариации. В группу Х попадают товары с коэффициентом вариации меньше 10%. В группу Y– товары с коэффициентом вариации от 10% до 25%. И в группу Z– товары с коэффициентом вариации более 25%.

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

При комплексном анализе состояния системы управления товарными ресурсами наиболее продуктивно является совмещение результатов АВС – и XYZ– анализов.

При совмещении результатов определяется девять групп товаров. Группы товаров представлены в таблице 2.1.
Таблица 2.1- Группы товаров при совмещении АВС – и
XYZ
– анализов




Товары групп А и В обеспечивают основной товарооборот компании, поэтому необходимо контролировать постоянное их наличие на складе.  Товары групп Aи Bнеобходимо распределить по складу, таким образом, чтобы доступ к ним был наиболее быстрый и удобный, для более быстрой отгрузки товаров. 

Товары группы АХ и ВХ отличает высокий товарооборот и стабильность. Необходимо обеспечить постоянное наличие данного товара, но для этого не требуется создавать избыточный страховой запас, так как расход товаров этой группы стабилен и хорошо прогнозируется.

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

Товары группы AZ и BZ при высоком товарообороте отличаются низкой прогнозируемостью расхода. Попытка обеспечить гарантированное наличие по всем товарам данной группы только за счет избыточного страхового товарного запаса приведет к тому, что средний товарный запас компании значительно увеличиться. По товарам данной группы следует пересмотреть систему заказов. Часть товаров нужно перевести на систему заказов с постоянной суммой (объемом) заказа, по части товаров необходимо обеспечить более частые поставки, выбрать поставщиков, расположенных близко к вашему складу (и снизить тем самым сумму страхового товарного запаса), повысить периодичность контроля.

Товары группы Cсоставляют до 80% ассортимента компании. Применение XYZ — анализа позволяет сильно сократить время, которое менеджер тратит на управление и контроль над товарами данной группы.

По товарам группы СХ можно использовать систему заказов с постоянной периодичностью и снизить страховой товарный запас.

По товарам группы CYможно перейти на систему с постоянной суммой (объемом) заказа, но при этом формировать страховой запас, исходя из имеющихся у компании финансовых возможностей.

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

Итак, использование совмещенного АВС – и  XYZ – анализа позволит:

— повысить эффективность системы управления товарными ресурсами;

— повысить долю высокоприбыльных товаров без нарушения принципов ассортиментной политики;

— выявить ключевые товары и причины, влияющие на количество товаров хранящихся на складе;

— выявить приоритеты для размещения товаров на складе;

— перераспределить усилия персонала в зависимости от квалификации и имеющегося опыта.

По проведенным анализам каждому товару присваивается приоритет, на основании которого данный товар «находит» свое место на складе. Склад делится на несколько зон.  Товары группы Aдолжны лежать в первой зоне,  которая находится ближе к входу. Причем товар группы Xимеет преимущество перед товаром группы Yи Zв размещении ближе к входу, к примеру товары группы Х лежат на первом ярусе, а товары группы Yи Zвыше. Товар категории B размещается во 2 зоне склада. А товар категории Cсоответственно  размещается в 3 зоне, в самом конце склада. Этот алгоритм позволяет минимизировать перемещения товара, связанные с пополнением ячеек комплектации и подбора товаров для формирования заказов.   

Отчеты «Объем продаж за период» (Z6), «Ведомость остатков» (Z7) формируются по запросу пользователя на основе данных из БД о продажах, поступлениях и списаниях товаров со складов по конкретному товару, группе товаров, складу за выбранный период.

Процесс оптимизации хранения товаров на складах основан на использовании справочной информации. Поэтому одной из автоматизируемых задач системы выделена задача – ведение справочников системы (Z8). Справочные системы хранят в себе данные о товарах, группах товаров, фасовках, складах, стеллажах, расположении стеллажей по складам.  Справочная информация характеризуется высоким уровнем постоянства, многократностью использования и длительностью хранения. Ее использование позволяет осуществить сокращение объема хранимых сведений, которое обеспечивается в основном за счет исключения дублирования данных.       

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


--PAGE_BREAK--
2.5 Требования к программно-техническому обеспечению

Для нормального функционирования системы выдвигаются следующие требования к программно-техническому обеспечению и комплексу технических средств.

2.5.1 Комплекс технических средств

Для эксплуатации разрабатываемой системы предъявляются следующие

минимальные требования к техническому оснащению:

-       объем оперативной памяти 128 Мб;

-       объем жесткого диска 20 Гб;

-        частота процессора 600 МГц.

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

В связи с этим для работы с системой рекомендуются следующие характеристики технического оснащения:

-       объем оперативной памяти 256 Мб и выше;

-       объем жесткого диска 40 Гб;

-       частота процессора 800-1000 МГц.

-       Дополнительные специальные требования к конфигурации ПК:

-       дисковод 3,5";

-       клавиатура и манипулятор типа «мышь» для управления в программе;

-       принтер формата А4 для печати выходных документов;

-       цветной монитор.

2.5.2 Общесистемное программное обеспечение

Данный программный продукт может функционировать в среде WINDOWS 98/NT/2000/XPи выше. С появлением операционной системы WINDOWS  появились широкие возможности для создания программных продуктов. Система WINDOWS обеспечивает многозадачный графический интерфейс пользователя (Graphical User Interface — GUI), который способствует написанию интерактивных программ. Эта система представляет  собой тип операционной системы, оптимизированной для взаимодействия человека и машины.

Также для функционирования данного программного продукта необходим программный пакет BDE Administrator для связи между таблицами.
2.5.3 Выбор и обоснование инструментального средства

В качестве инструментального средства для создания программы был выбран пакет C++Builder6.0 для операционной системы WINDOWS.

C++Builderпродукт корпорации Inprise, более известной как Borland International, предназначенный для быстрой разработки приложений (RAD — Rapid Application Development) на языке С++.

C++Builder— мощная система визуального объектно-ориентированного проектирования, позволяющая решать множество задач, в частности:

— создавать законченные приложения под WINDOWS самой различной направленности, от чисто вычислительных и логических, до графических и мультимедиа;

— быстро создавать (даже начинающим программистам) профессионально выглядящий оконный интерфейс для любых приложений, написанных на любом языке;

— интерфейс удовлетворяет всем требованиям WINDOWS и автоматически настраивается на ту систему, которая установлена на компьютере пользователя, поскольку использует многие функции, процедуры, библиотеки WINDOWS;

--PAGE_BREAK--

Таблица 3.8 – Структура таблицы «Поставки»


Наименование поля

Обозначение

Тип данных

Размер

Номер записи

N

Счетчик



Код товара

Id_tov

Длинное целое число



Дата поставки товара

Date

Дата




Продолжение таблицы 3.8

Наименование поля

Обозначение

Тип данных

Размер

Номер приходной накладной

N_doc

Строка

10

Количество поставленного товара

Amount

Действительное число



Код сотрудника, принявший товар

Id_sotrud

Длинное целое число



Код поставщика

Id_post

Длинное целое число




Таблица 3.9 – Структура таблицы «Заказы»

Наименование поля

Обозначение

Тип данных

Размер

Номер записи

N

Счетчик



Код товара

Id_tov

Длинное целое число



Дата заказа товара

Date

Дата



Номер бланка заказа

N_zak

Строка

10

Код поставщика

Id_post

Длинное целое число



Количество  товара

Kolvo

Действительное число



Код сотрудника, отпустившего товар

Id_sotr

Длинное целое число



Стоимость заказа

Zena

Действительное число



Затраты на создание заказа

Zatr_zak

Действительное число




Таблица 3.10 – Структура таблицы «Поставщики»

Наименование поля

Обозначение

Тип данных

Размер

Код поставщика

Id_post

Счетчик



Наименование поставщика

Post

Строка

50

Контактное лицо

FIO

Строка

50

Телефон для связи

Tel

Строка

25

Код банка

Id_bank

Длинное целое число



Расчётный счёт

Schet

Действительное число



Среднее время поставки 

Tpost

Действительное число



Среднее время задержки поставки 

Zpost

Действительное число




Таблица 3.11 – Структура таблицы «Банки»


Наименование поля

Обозначение

Тип данных

Размер

Код банка

Id_bank

Счетчик



Наименование банка

Bank

Строка

50

Контактное лицо

FIO

Строка

50

Телефон для связи

Tel

Строка

25

Расчётный счёт

Schet

Действительное число



ИНН

<place w:st=«on»>Inn

Действительное число



БИК

Bik

Действительное число



Продолжение таблицы 3.11

Наименование поля

Обозначение

Тип данных

Размер

КПП

Kpp

Действительное число




Таблица 3.12 – Структура таблицы «Списания»

Наименование поля

Обозначение

Тип данных

Размер

Номер записи

N

Счетчик



Код товара

Id_tov

Длинное целое число



Дата списания товара

Date

Дата



Номер акта на списание

N_doc

Строка

10

Количество списанного товара

Kolvo

Действительное число



Код сотрудника, списавшего товар

Id_sotrud

Длинное целое число



Код причины списания товара

Id_reason

Длинное целое число




Таблица 3.13 – Структура таблицы «Причины списания товара»

Наименование поля

Обозначение

Тип данных

Размер

Код причины списания товара

Id_reason

Счетчик



Причина списания товара

Reason

Строка

150


Таблица 3.14 – Структура таблицы «Инвентаризация»

Наименование поля

Обозначение

Тип данных

Размер

Номер записи

N

Счетчик



Дата

Date

Дата



Код товара

Id_tov

Длинное целое число



Количество товара

Kolvo

Действительное число



Поле для примечаний

Note

Строка

200



         3.2 Логическая модель взаимосвязи таблиц базы данных системы

  Схема структуры базы данных системы взаимосвязи таблиц по ключевым признакам представлена на рисунке 4.1.

<img width=«675» height=«509» src=«ref-2_1317153317-15524.coolpic» v:shapes="_x0000_s3340 _x0000_s3341 _x0000_s3342 _x0000_s3343 _x0000_s3344 _x0000_s3345 _x0000_s3346 _x0000_s3347 _x0000_s3348 _x0000_s3349 _x0000_s3350 _x0000_s3351 _x0000_s3352 _x0000_s3353 _x0000_s3354 _x0000_s3355 _x0000_s3356 _x0000_s3357 _x0000_s3358 _x0000_s3359 _x0000_s3360 _x0000_s3361 _x0000_s3362 _x0000_s3363 _x0000_s3364 _x0000_s3365 _x0000_s3366 _x0000_s3367 _x0000_s3368 _x0000_s3369 _x0000_s3370 _x0000_s3371 _x0000_s3372 _x0000_s3373 _x0000_s3374 _x0000_s3375 _x0000_s3376 _x0000_s3377 _x0000_s3378 _x0000_s3379 _x0000_s3380 _x0000_s3381 _x0000_s3382 _x0000_s3383 _x0000_s3384 _x0000_s3385 _x0000_s3386 _x0000_s3387 _x0000_s3388 _x0000_s3389 _x0000_s3390 _x0000_s3391 _x0000_s3392 _x0000_s3393 _x0000_s3394 _x0000_s3395 _x0000_s3396 _x0000_s3397 _x0000_s3398 _x0000_s3399 _x0000_s3400 _x0000_s3401 _x0000_s3402 _x0000_s3403 _x0000_s3404 _x0000_s3405 _x0000_s3406 _x0000_s3407 _x0000_s3408 _x0000_s3409 _x0000_s3410 _x0000_s3411 _x0000_s3412 _x0000_s3413 _x0000_s3414 _x0000_s3415 _x0000_s3416 _x0000_s3417 _x0000_s3418 _x0000_s3419 _x0000_s3420 _x0000_s3421 _x0000_s3422 _x0000_s3423 _x0000_s3424 _x0000_s3425 _x0000_s3426 _x0000_s3427 _x0000_s3428 _x0000_s3429 _x0000_s3430 _x0000_s3431 _x0000_s3432 _x0000_s3433 _x0000_s3434 _x0000_s3435 _x0000_s3436 _x0000_s3437 _x0000_s3438 _x0000_s3439 _x0000_s3440 _x0000_s3441 _x0000_s3442 _x0000_s3443 _x0000_s3444 _x0000_s3445 _x0000_s3446 _x0000_s3447 _x0000_s3448 _x0000_s3449 _x0000_s3450 _x0000_s3451 _x0000_s3452 _x0000_s3453 _x0000_s3454 _x0000_s3455 _x0000_s3456 _x0000_s3457 _x0000_s3458 _x0000_s3459 _x0000_s3460 _x0000_s3461 _x0000_s3462 _x0000_s3463 _x0000_s3464 _x0000_s3465 _x0000_s3466 _x0000_s3467 _x0000_s3468 _x0000_s3469 _x0000_s3470 _x0000_s3471 _x0000_s3472 _x0000_s3473 _x0000_s3474 _x0000_s3475 _x0000_s3476 _x0000_s3477 _x0000_s3478 _x0000_s3479 _x0000_s3480 _x0000_s3481 _x0000_s3482 _x0000_s3483 _x0000_s3484 _x0000_s3485 _x0000_s3486 _x0000_s3487 _x0000_s3488 _x0000_s3489 _x0000_s3490 _x0000_s3491 _x0000_s3492 _x0000_s3493 _x0000_s3494 _x0000_s3495 _x0000_s3496 _x0000_s3497 _x0000_s3498 _x0000_s3499 _x0000_s3500 _x0000_s3501 _x0000_s3502 _x0000_s3503 _x0000_s3504 _x0000_s3505 _x0000_s3506 _x0000_s3507 _x0000_s3508 _x0000_s3509 _x0000_s3510 _x0000_s3511 _x0000_s3512 _x0000_s3513 _x0000_s3514 _x0000_s3515 _x0000_s3516 _x0000_s3517 _x0000_s3518 _x0000_s3519 _x0000_s3520 _x0000_s3521 _x0000_s3522 _x0000_s3523 _x0000_s3524 _x0000_s3525 _x0000_s3526 _x0000_s3527 _x0000_s3528 _x0000_s3529 _x0000_s3530 _x0000_s3531 _x0000_s3532 _x0000_s3533 _x0000_s3534 _x0000_s3535 _x0000_s3536 _x0000_s3537 _x0000_s3538 _x0000_s3539 _x0000_s3540 _x0000_s3541 _x0000_s3542 _x0000_s3543 _x0000_s3544 _x0000_s3545 _x0000_s3546 _x0000_s3547 _x0000_s3548 _x0000_s3549 _x0000_s3550 _x0000_s3551 _x0000_s3552 _x0000_s3553 _x0000_s3554 _x0000_s3555 _x0000_s3556 _x0000_s3557"><img width=«672» height=«507» src=«ref-2_1317168841-73.coolpic» v:shapes="_x0000_i1057">

                   Рисунок 3.1 — Логическая модель информационной системы
3.3 Информационная модель системы
С помощью информационной модели можно наглядно представить состав информационного обеспечения, а также взаимосвязь между входной, выходной и промежуточной информацией системы. Информационная модель системы представлена на рисунке 3.2.

На рисунке 4.2 введены следующие обозначения:

Т1 — справочная таблица «Товары»;

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

                     ИНАЧЕ

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

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

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

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

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

Рисунок 3.4 – Алгоритм формирование оптимального размера заказа


                            ОТКРЫТЬ файл 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*<img width=«145» height=«54» src=«ref-2_1317178293-1031.coolpic» v:shapes="_x0000_i1059">

                                              Продолжение Рисунка 3.4
                            ДОБАВИТЬ запись в таблицу Zakazi

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

                            Zakazi.date= dr

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

                            Zakazi.kolvo = Q

                            Zakazi.zena= Q*C

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

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

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

                   К_Е

          К_Е

          ВЫВОД файла Zakazi

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

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

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

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

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

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

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

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

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

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

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

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

          УСТАНОВИТЬ фильтр с условием: Tovari.group= выбранной группе
          Рисунок 3.5 – Алгоритм формирования отчета «Объем продаж»
          ЕСЛИ конец файла

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

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

          К_Е

          ЦИКЛ пока не конец файла 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.5

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

        Рисунок 3.6 – Алгоритм формирования отчета «Ведомость остатков»

                           

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

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

                   ПЕРЕЙТИ в рабочую область файла 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.6


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

Рисунок 3.7 – Алгоритм формирования отчета «Списания»

                                     

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

                   ДОБАВИТЬ строку в таблицу 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, позволяющее идентифицировать пользователя. Если такой пользователь существует, то далее следует запуск главное окно системы, иначе выводится сообщение о том, что доступ запрещен и окно для ввода логина и пароля активируется снова.
<img width=«273» height=«174» src=«ref-2_1317179324-10495.coolpic» hspace=«12» v:shapes="_x0000_s3558">


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


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

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

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

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

-       «Продажи»;

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

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

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

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

 <img width=«575» height=«387» src=«ref-2_1317189819-18346.coolpic» v:shapes="_x0000_i1026">



Рисунок 3.9  – Главное меню программы


          Окно работы программы разделено на 2 части (см. рисунок 3.10). Первая часть предназначена для добавления новых записей на основе документа расходная накладная. Она имеет три поля для выбора наименования товара, заказчика,  сотрудника, ответственного за отгрузку товара из справочников «Наименования товаров», «Сотрудники», «Клиенты». Так же эта часть окна предоставляет выбор даты продажи товара, ввод номера документа и количества проданного товара. На данной форме имеется две кнопки управления: «Очистить форму» и «Добавить запись». При нажатии кнопки «Очистить форму» в форме добавления записи очищаются все выбранные записи. При нажатии кнопки «Добавить строку» в базу данных добавляется новая строка и в нее записываются выбранные значения из бланка добавления записи. В другой части окна мы имеем возможность просмотра внесённых изменений в таблицу базы данных «Продажи».

<img width=«623» height=«420» src=«ref-2_1317208165-49676.coolpic» v:shapes="_x0000_i1027">

3.10 — Экранная форма «Продажи»


Рассмотрим раздел меню «Справочники». В этом разделе предоставляется

доступ к справочникам базы данных. Раздел «Справочники» разделен на следующие подразделы:

-       «Товар»;

-       «Наименования товаров»;

-       «Группы товаров»;

-       «Сотрудники»;

-       «Должность»;

-       «Клиенты»;

-       «Поставщики»;

-       «Банки»;

-       «Причины списания».

Подпункты пункта меню «Справочники» предназначены для просмотра и редактирования справочников базы данных. Для этого предусмотрено два поля (см. рисунок 3.11): первое – добавление данных в справочник, второе – просмотр справочника системы.

<img width=«623» height=«421» src=«ref-2_1317257841-41537.coolpic» v:shapes="_x0000_i1028">

Рисунок 3.11 – Экранная форма «Поставщики»


В пункте меню «Отчеты» представлены все отчеты системы. К ним относят:

-       «Бланк заказа»;

-       «Объем продаж»;

-       «Ведомость остатков»;

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

При выборе пункта меню «Ведомость остатков» появляется окошко (см. рисунок 3.12), предлагающее выбрать группу товаров для вывода таблицы ведомости остатков. При нажатии кнопки «Отмена» управление программой переходит в главное меню. При нажатии кнопки «ОК» программа начинает формирование ведомости по введенным параметрам.
<img width=«318» height=«190» src=«ref-2_1317299378-13160.coolpic» v:shapes="_x0000_i1029">


Рисунок 3.12 – Экранная форма задания параметров на формирование    «Ведомости остатков»
<img width=«623» height=«420» src=«ref-2_1317312538-52318.coolpic» v:shapes="_x0000_i1030">
Рисунок 3.13 – Экранная форма «Ведомость остатков»


Результаты формирования «Ведомости остатков» представлены на рисунке 3.13. На этой экранной форме имеется кнопка управления «Изменить параметры расчета». При нажатии этой кнопки программа открывает диалог задания параметров для формирования отчёта  «Ведомость остатков».


          В столбце optim_kolvoтаблицы «Ведомость остатков» указывается оптимальное количество товаров, рассчитанное исходя из затрат на хранение данного товара на складе. Значение 1 в столбце garantzapasпоказывает, что количество товара на данный момент меньше либо равно величине гарантийного запаса. Это означает, что пользователь увидев значение 1 в столбце должен пополнить запасы данного товара.

          При выборе пункта меню «Бланк заказа» появляется окошко (см. рисунок 3.12), предлагающее ввести пользователю номер заказа и количество товаров в заказе,  а также  выбрать дату заказа, наименование товара, поставщика и сотрудника оформившего заказ для вывода таблицы заказы.
                     <img width=«400» height=«277» src=«ref-2_1317364856-20413.coolpic» v:shapes="_x0000_i1031">
Рисунок 3.12 – Экранная форма «Бланк заказа»


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

          Результаты формирования таблицы «Заказы» представлены на рисунке 3.13. На этой экранной форме имеется кнопка управления «Изменить параметры расчета». При нажатии этой кнопки программа открывает диалог задания параметров для формирования  «Бланка заказа».


   <img width=«623» height=«419» src=«ref-2_1317385269-46068.coolpic» v:shapes="_x0000_i1032">


Рисунок 3.13 – Экранная форма «Заказы»



4. Организационно экономическое обоснование дипломного проекта
4.1. Целесообразность разработки с экономической точки зрения

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

В результате внедрения разработки повышается оперативность и качество принимаемых решений, повышается надежность, улучшаются условия труда, обеспечение сопровождения.
4.2.
SWOT
-анализ разработки


Название данного метода анализа представляет собой аббревиатуру английских слов Strength(сила), Weakness(слабость), Opportunities(возможности), Threats(угрозы).

Сильные стороны:

-     низкая стоимость разработки;

-     многофункциональность(быстрый отчёт, поиск информации, упрощенное ведение документации);

-     обеспечение сопровождения.

Слабые стороны: 

-     взаимодействие с другим ПО, в том числе и бухгалтерских.

Возможности:

-     получение некоторых сведений по сети;

-     расширение круга пользователей.

Угрозы:

-     изменение методов ведения работы,

-     выход системы из строя.

Таблица 4.1 –
SWOT
-матрица



Сильные
стороны

Возможности

Угрозы.

Итого

Получение некоторых сведений по сети

Расширение круга пользователей

Изменение методов ведения работы

Выход системы из строя

Низкая стоимость разработки



+1





+1

Многофункциональность

+2



+1



+3

Обеспечение сопровождения

+2



+2

+2

+5

Итого

+4

+3

+3

+2

+12

Слабые
стороны







Взаимодействие с другим ПО

-

-



-


-3

Покупка пакета 1С











Итого

-1

-1



-1

-3

Общий итог

+3

+2

+3

+1

+9



Проанализировав полученную SWOT-матрицу, можно сделать следующие выводы:

·        Наиболее важным достоинством является обеспечение сопровождения. В дальнейшем необходимо обращать особое внимание на обеспечение и расширение этой стороны разработки;

·        Все выделенные слабые стороны разработки являются очень опасными. И, тем не менее, при правильном подходе они – разрешимы.

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

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

Таблица 4.2
– Материалы


Наименование материальных затрат

Ед. изм.

Кол-во

Цена без НДС с учетом комиссионных вознаграждений, таможенных пошлин и транспортных затрат

Сумма

USB – Flash носитель

шт.

1

1000

1000

Бумага писчая ZOOM, пачка 500 листов

шт.

1

270

250

Картридждля принтера Epson

шт.

1

200

200

Канцтовары

шт.

5

15

70

Итого:







1625



Таблица 4.3

Оценка трудоемкости разработки




Наименование этапа

Трудоемкость этапа, часы

1

Анализ задания и знакомство с темой

12

2

Изучение топологии сети и подбор литературы

22

3

Изучение литературы

60

4

Составление и согласование проекта возможной перестройки топологии сети

40

5

Проектирование

120

6

Отладка

90

7

Составление и согласование проекта пакета служебных инструкций

30



Итого

374



Следовательно, всего на разработку затрачено 374 часа или 49 рабочих дней при восьмичасовом рабочем дне.

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

Разработка выполнялась инженером-программистом в течение 46 рабочих дней при восьмичасовом рабочем дне. Месячный фонд времени работы инженера-программиста 160 часов, среднемесячная заработная плата 9000 руб.

Основная заработная плата разработчика составила

<img width=«204» height=«41» src=«ref-2_1317431337-452.coolpic» v:shapes="_x0000_i1060">руб.

Дополнительная заработная плата составляет 20%

Здоп = 0,2*Зосн = 0,2*16247,37 = 2929,47 руб.

Затраты на оплату труда с учетом поясного коэффициента (25%)

ЗТР = 1,25*(Зосн +Здоп ) = 1,25*(16247,37+2929,47) = 21221,05 руб.
4.4. Отчисления на социальные нужды.

Единый социальный налог.

а) отчисления в Фонд Социального страхования(20% от затрат на оплату труда)  0,2*21221,05 = 4244,21 руб.;

б) отчисления в Пенсионный фонд   (2,9% от затрат на оплату труда) 0,029*21221,05 = 615,4  руб.;

в) отчисления в Федеральный Фонд обязательного медицинского страхования (1,1% от затрат на оплату труда)

0,011*21221,05 =233,44 руб.;

Итого единый социальный налог 5517,47 руб.

5. Прочие прямые расходы.

Стоимость проезда составила 740 руб.

6. Накладные расходы составляют 80% от затрат на оплату труда

0,80*21221,05 = 16976,84 руб.


Форма 1-пн

Кафедра АСУ

Калькуляция составлена

«20» февраля__ 200 <metricconverter productid=«7 г» w:st=«on»>7 г.

КАЛЬКУЛЯЦИЯ

плановой себестоимости

Автоматизированного рабочего места менеджера логистического отдела

Основание для проведения работ (договор, заказ)___заказ_______

Заказчик:  ЗАО Аптека Холдинг »


Срок выполнения работы: начало  1 марта <metricconverter productid=«2007 г» w:st=«on»>2007 г._________________

окончание 31 мая 2007г.­­_______________



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

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

30000 * 3 – 47259,00 = 43852,0 руб.

Налог на прибыль (24%) составит

0,24 * 43852,2 = 10524,53 руб.

Ожидаемая рентабельность проекта

<img width=«225» height=«44» src=«ref-2_1317431789-540.coolpic» v:shapes="_x0000_i1061">.

Отпускная цена одного экземпляра программы составит (с учетом НДС 18%)

30000 * 1,18 = 35200 руб.

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


5. Раздел  «Охрана труда»

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

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

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

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

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

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

— В помещении предприятия оптовой торговли лекарственными средствами должны быть предусмотрены складские и административно-бытовые помещения, объединенные в одном строении или расположенные раздельно (далее — склад).

-  Склад может размещаться в отдельно стоящем нежилом здании, здании производственного назначения или в нежилых помещениях жилых домов.

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

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

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

При размещении склада должно быть обеспечено выполнение стандартов.

— Складские помещения должны иметь системы электроснабжения, отопления, систему водоснабжения, канализации, приточно-вытяжную вентиляцию.

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

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

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

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

— Площадь складских помещений основного производственного назначения должна соответствовать объему хранимого товара на единицу складской площади, но не менее <metricconverter productid=«150 кв. м» w:st=«on»>150 кв. м, включая:

·        зону приемки продукции;

·        зону для основного хранения лекарственных средств;

·        помещение для лекарственных средств, требующих особых условий хранения;

·        экспедиционную.

— Общая площадь административно-бытовых помещений зависит от численности персонала и рассчитывается согласно действующим нормам и правилам, но не менее <metricconverter productid=«34 кв. м» w:st=«on»>34 кв. м, включая вспомогательные складские помещения, предназначенные для размещения аппарата управления, бытовые помещения, например, служебные помещения аппарата управления складом, пункты питания, здравпункт, санитарно-бытовые помещения, вестибюли, лестничные клетки, тамбуры.

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

—  Предприятие оптовой торговли должно быть оснащено оборудованием и инвентарем в соответствии с выполняемыми функциями:

·        стеллажами, поддонами, подтоварниками для хранения медикаментов;

·        холодильными камерами для хранения термолабильных лекарственных средств;

·        средствами механизации для погрузочно-разгрузочных работ;

·        приборами для регистрации параметров воздуха (термометрами, гигрометрами или психрометрами);

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

·        шкафами для хранения верхней и специальной одежды, обуви в гардеробной;

·        дезинфекционными средствами и хозяйственным инвентарем для обеспечения санитарного режима.

—  Все складские помещения, в которых хранятся лекарственные средства, должны иметь термометры, гигрометры или психрометры, которые размещают на внутренней стене помещения, вдали от нагревательных приборов на высоте 1,5 — <metricconverter productid=«1,7 м» w:st=«on»>1,7 м от пола и на расстоянии не менее <metricconverter productid=«3 м» w:st=«on»>3 м от дверей. Показатели этих приборов должны ежедневно регистрироваться в специальном журнале (карте) ответственным лицом. Контролирующие приборы должны быть сертифицированы и калиброваны в установленном порядке.

— Стеллажи для хранения лекарственных средств и изделий медицинского назначения должны быть установлены следующим образом:

·         расстояние до наружных стен не менее 0,6 — <metricconverter productid=«0,7 м» w:st=«on»>0,7 м;

·         расстояние до потолка не менее <metricconverter productid=«0,5 м» w:st=«on»>0,5 м;

·         расстояние от пола не менее <metricconverter productid=«0,25 м» w:st=«on»>0,25 м;

·         проходы между стеллажами не менее <metricconverter productid=«0,75 м» w:st=«on»>0,75 м;

·         на всех стеллажах, шкафах, полках прикрепляется стеллажная карта с указанием наименования лекарственного препарата, серии, срока годности, количества единиц хранения.
Организация хранения лекарственных средств:

— Все товары на складе должны размещаться на стеллажах или на подтоварниках (поддонах) высотой не ниже <metricconverter productid=«14,5 см» w:st=«on»>14,5 см. Не допускается размещение товара на полу без поддона. Каждое наименование и каждая серия лекарственных средств должны храниться на отдельных поддонах. Поддоны могут располагаться на полу в один ряд или на стеллажах в несколько ярусов, в зависимости от высоты стеллажа. Не допускается размещение поддонов с лекарственными средствами друг на друга без стеллажей.

—  Не допускается загрузка объема помещения для складирования более чем на 1/3. При ручном способе разгрузочно-погрузочных работ высота укладки товара не должна превышать <metricconverter productid=«1,5 метров» w:st=«on»>1,5 метров. При использовании механизированных средств товар хранится в несколько ярусов, высота укладки товара на полке стеллажа не должна превышать <metricconverter productid=«1,5 метров» w:st=«on»>1,5 метров. Высота размещения товаров на стеллажах не должна превышать возможности механизированных погрузочно-разгрузочных средств (подъемники, автокары, тали и др.).

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

—  Хранение медикаментов может быть систематизировано:

·        по фармакологическим группам;

·        по способу применения.

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

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

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

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

—  Требования к хранению лекарственных средств, требующих защиты от влаги:

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

·        гипс жженый хранится в хорошо закрытой таре (например, плотно сбитые деревянные ящики, бочонки, выложенные изнутри полиэтиленовой пленкой);

·        горчица в порошке хранится в герметично закрытых жестяных банках, лакированных изнутри;

·        горчичники хранятся в пачках, упакованных в пергаментную бумагу или полиэтиленовую пленку, помещенных в плотно укупоренную тару.

— Требования к хранению летучих лекарственных средств, требующих защиты от улетучивания:

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

·        кристаллогидраты хранятся в прохладном месте при относительной влажности воздуха 50 — 65% в герметично укупоренной стеклянной, металлической или толстостенной пластмассовой таре.

—  Требования к хранению термолабильных лекарственных средств:

·         при хранении лекарственных средств, требующих защиты от повышенной или пониженной температуры, необходимо соблюдать температурный режим, указанный на этикетке или в инструкции по применению;

·        органопрепараты следует хранить в сухом, прохладном, защищенном от света месте при температуре 0 — +15 град. С (если нет других указаний);

·        медицинские жирные масла хранят при температуре от +4 до +12 град.

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

— Требования к хранению наркотических средств и психотропных веществ, а также сильнодействующих и ядовитых веществ:

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

·        входная дверь должна быть толщиной не менее <metricconverter productid=«40 мм» w:st=«on»>40 мм, обита железом с обеих сторон с загибом листа на торец двери внахлест или на внутреннюю поверхность двери, или металлическая дверь;

·        обрамление дверного проема должно быть выполнено из стального профиля, внутри — решетчатая металлическая дверь;

·        внутренняя решетка на оконных проемах (или решетка между рамами) должна быть выполнена из стального прута диаметром не менее <metricconverter productid=«16 мм» w:st=«on»>16 мм.

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

·        наркотические средства, психотропные, сильнодействующие и ядовитые вещества хранятся в запирающихся сейфах или железных шкафах (в технически укрепленных помещениях);

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

—  Требования к хранению пахучих и красящих лекарственных средств:

·        пахучие лекарственные средства хранятся изолированно в герметически закрытой таре, непроницаемой для запаха, раздельно по наименованиям;

·        красящие лекарственные средства хранятся в специальном шкафу в плотно укупоренной таре, раздельно по наименованиям.

-   Требования к хранению лекарственного растительного сырья:

·        лекарственное растительное сырье (предварительно высушенное) должно храниться в сухом, хорошо вентилируемом помещении, в закрытой таре (стеклянной, металлической, деревянной);

·        резаное сырье хранят в тканевых мешках, порошок — в двойных мешках (внутренний — бумажный, наружный — тканевый);

·        лекарственное растительное сырье, содержащее эфирные масла, необходимо хранить изолированно в хорошо укупоренной таре;

·        ядовитое и сильнодействующее растительное сырье хранится в отдельном помещении или в отдельном закрытом на замок шкафу;

—  Требования к хранению дезинфицирующих средств:

·        дезинфицирующие средства хранят в герметично укупоренной таре в защищенном от света прохладном месте;

·        хранение производится в отдельном помещении, изолированно от лекарственных препаратов, а также вдали от помещений хранения пластмассовых, резиновых и металлических изделий.

— Требования к хранению взрывоопасных и легковоспламеняющихся веществ:

·         взрывоопасные и легковоспламеняющиеся вещества должны храниться в отдельном помещении (сухом, защищенном от прямого солнечного света, осадков и грунтовых вод, расположенном на 1 этаже, имеющем железобетонное перекрытие и металлическую дверь);

·         несгораемые стеллажи должны быть установлены на расстоянии не менее <metricconverter productid=«0,25 м» w:st=«on»>0,25 м от пола и стен, ширина стеллажей не более <metricconverter productid=«1 м» w:st=«on»>1 м, и должны иметь отбортовки не менее <metricconverter productid=«0,25 м» w:st=«on»>0,25 м, проходы между стеллажами не менее <metricconverter productid=«1,35 м» w:st=«on»>1,35 м;

·         несгораемые шкафы должны иметь дверцы шириной не менее <metricconverter productid=«0,7 м» w:st=«on»>0,7 м и высоту не менее <metricconverter productid=«1,2 м» w:st=«on»>1,2 м;

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

·         крупные емкости должны храниться только в один ряд по высоте;

·         расстояние от стеллажей до нагревательных приборов — не менее <metricconverter productid=«1 м» w:st=«on»>1 м;

·        —  степень заполнения тары при хранении легковоспламеняющихся и горючих жидкостей — не более 90% (спирты — 75%);

·        — газовые баллоны хранятся в вертикальном положении, кислородные подушки хранятся в подвешенном виде рядом с баллонами.
5.2 Расчёт мощности вентилятора
Сохранность материальных ценностей в складских помещениях в значительной мере обеспечивается за счет поддержания определенных параметров микроклимата – температуры, относительной влажности, подвижности воздуха.

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

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

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

<img width=«370» height=«766» src=«ref-2_1317432329-48140.coolpic» v:shapes="_x0000_i1033">

        

          Рисунок 5.1 – Основные варианты систем вентиляции

Учитывая специфику вентиляции аптечного склада нужно проектировать приточно-вытяжную вентиляцию с механическим побуждением.  

         Приточно-вытяжная вентиляция — вентиляция, состоит:

— из приточной системы, подающей в помещение чистый воздух, а также возмещающей воздух, расходуемый на технологические нужды;

— из вытяжной системы, удаляющей из помещения загрязненный воздух.

Приточно-вытяжная вентиляция и ее составные части

• Наружная воздухозаборная решетка

• Обратный клапан

• Вентилятор вытяжного действия

• Автоматика

• Виброглушитель

• Воздуховодные каналы

• Регуляторы на воздуховодах

• Вытяжные диффузоры или решетки

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

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

            Расчет системы вентиляции для помещения, как правило, начинается с подбора оборудования, подходящего по таким параметрам, как производительность по прокачиваемому объему воздуха и измеряемому в кубометрах в час.

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

— Производительность по воздуху (м3/ч)

— Рабочее давление (Па) и скорость воздушного потока (м/с)

— Уровень шума (дБ)

— Мощность калорифера (кВт)

Расчет системы вентиляции начинается с подбора оборудования, подходящего по таким параметрам, как производительность по прокачиваемому объему воздуха и измеряемому в кубометрах в час. Важнейшим показателем в системе является кратность воздухообмена, которая показывает, сколько раз происходит полная замена воздуха в помещении в течение часа. Кратность воздухообмена определяется СНиП (Строительными Нормами и Правилами) и зависит от назначения помещения, количества оборудования, выделяющего тепло, а также от того, сколько людей находится в помещении. Как правило, для жилых помещений необходимая кратность воздухообмена составляет единицу, в то время как для рабочих помещений (офис и др.) это значение должно составлять 2-3. В сумме все значения по кратности воздухообмена для всех помещений составляют производительность по воздуху. Как правило, обычные значения производительности составляют: для офисов: 1000-10000 кубометров/ч, для коттеджей: 1000-2000 кубометров/ч, для квартир: 100-800 кубометров/ч.

Следующий этап в расчете вентиляции — проектирование воздухораспределительной сети, состоящей из таких компонентов, как воздуховоды, распределители воздуха, а также фасонные изделия (переходники, повороты, разветвители) Сначала разрабатывается схема воздуховодов, по которой производится расчет уровня шума, рабочего давления и скорости потока воздуха. Рабочее давление напрямую зависит от того, какова мощность используемого вентилятора и расчитывается с учетом диаметров воздуховодов, количества переходов с одного диаметра на другой, и количества поворотов.
Рассчитаем необходимую мощность  вентилятора для аптечного складского помещения. Размеры аптечного склада (м): 120*40*5 = 2400 кубометров.

Q   =   V n   *   K,

где   V n   -   объем помещения, м3

K  -   кратность воздухообмена (равен 2, для аптечных складов)

Q   =   2400   *   2   =  4800

Мощность электродвигателя,

необходимая для привода вентилятора:

                                                 


W в  =       ( 1,2… 1,5 )  *Q   *   H в  , кВт  

                          Vв *  ђ в  * ђ п
где   1,2… 1,5  -   коэффициент, учитывающий

неучтенные  потери напора воздушного потока.

   Vв       —    скорость вращение вентилятора ,  об/ч

   Hв      -     напор воздушного потока,    кг / м2 

   ђ в       -     КПД вентилятора

   ђ п       -     КПД передачи

                                      

W в   =   1,2   *  ____4800   *   32____
 
    =   39  кВт

                               3600* 0,8 * 0,95
Для склада необходимо приобрести 2 вентилятора центробежного типа общего назначения,  с мощность по 20 кВт каждый.  К примеру, вентиляторы марки  FujiRSсо следующими характеристиками.  



МОДЕЛЬ

Мощность электродвигателя, кВт

Потреб-ляемая мощность, кВт

Уровень шума при работе на охл./нагр., dB

Расход воздуха, м3/час

RSA-18LCC (R410A)

20

1,7

36

800


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

          Построена информационная модель существующей системы управления, описаны и квалифицированы формы входных и выходных документов.

          Определены основные требования, предъявляемые пользователем к системе. Разработан технологический процесс функционирования системы в автоматизированном режиме и построена информационная модель системы. На основе проведённого анализа, спроектированы структуры файлов баз данных. Разработаны программные модули системы.

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

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

          Разработанную систему предлагается использовать на складах ЗАО «Аптека — Холдинг» и в его филиалах.


Список использованных источников


1.            Гаджинский А.М. Практикум по логистике / А.М. Гаджинский. — М.: ИКЦ Маркетинг, 2001. – 84 с.

2.            Костоглодов Д.Д., Харисова Л.М., Распределительная логистика / Д.Д. Костоглодов, Л.М. Харисова. — М.: Экспертное бюро, 1997. – 146 с.

3.            Дыбская В.В. Управление складом в логистической системе / В.В. Дыбская. — М.: 2000. – 172 с.

4.            Николайчук В.Е. Логистика: учебное пособие. — СПб.: «Питер», 2002. – 46с.

5.            Аникин Б.А. Логистика / Б.А. Аникин. — М.: ИНФРА-М, 1998. – 180с.

6.            Берков М.В. Информационные технологии в логистике / М.В. Берков. — М.: Финансы и статистика, 1999. – 76с.

7.            Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем /  В.В. Бойко, В.М. Савинков. — М.: Финансы и статистика, 1999. — 68с.

8.            Ахаян Р. Д. Эффективная работа с СУБД /  Р.Д. Ахаян. — СПб.: Питер, 1997. – 284с.

9. Семёнова И.Н. Оптимальный размер заказа, формула Вильсона   [Электронный ресурс] /  И.Н. Семёнова; ГУ ВШЭ. – Режим доступа:

            http://www.logistpro.ru/div8/upr_zapas/wilson.html;

10.        Верников Г.И. Стандарты планирования, описание стандарта MRPII

        [Электронный ресурс] /  Г.И Верников; ГУУ. — Режим доступа :

            www.cfin.ru/vernikov/mrp/mrp2.html

11.        Кондрашов С.В. Логистика в системе управления товарно-материальными потоками промышленного предприятия

        [Электронный ресурс] / С.В. Кондрашов; ГУУ. — Режим доступа :

        www.cfin.ru/bandurin/article/sbrn08/index.shtml

12.   Залманова М.Е. Закупочно – распределительная логистика :              

       учебное пособие. – Саратов: СПИ, 1992

13.  Дыбская В.В., Зайцев Е.И., Сергеев В.И.Корпоративная логистика.

        300 ответов на вопросы профессионалов / В.В. Дыбская, Е.И. Зайцев, В.И.   

        Сергеев. — М.: Инфра — М, 2004. – 180с.

14.  Гаджинский А.М. Логистика на производстве / А.М Гаджинский. — СПб. : 

        «Питер», 1999. – 64с.

15.   Кокурин Д.И. Основы логистики в промышленности / Д.И. Кокурин — М.:  

       Финансы и статистика, 2000. – 56с.

16.        Н.Г. Низовкина, Л.И. Гнездилова. Методические указания к организационно-экономической части дипломных проектов. №1879.– Новосибирск: НГТУ, 1999. – 48 с.

17.        Захарова Е.Я. Экономика информатики: Учебное пособие. – Новосибирск: НГТУ, 1999. – 126с.

18.        Липаев В.В., Потапов А.И. Оценка затрат на разработку программных средств / В.В. Липаев,  А.И. Потапов – М.: Финансы и статистика, 1998. – 182 с.

19.        Полярин Ю.В. Организация системы вентиляции на складе

        [Электронный ресурс] / Ю.В. Полярин; ГУ ВШЭ,— Режим доступа :

        www.sitmag.ru/article/azbuka/vent01.html

20.   Маслов Л.А. Условия хранения медикаментов на аптечных складах

         [Электронный ресурс] / Л.А.Маслов; ГУУ,— Режим доступа :

        www.recipe.ru/docs/nd/type23.html
 




Приложение А
Формы входных и выходных документов

Приходная ведомость

Номер по по рядку

Товар

Единица измерения

Вид упаковки

Количество

Цена

 

наименование

код

наиме- нование

код по ОКЕИ

 

штук

руб. коп.

1

2

3

4

5

6

7

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 











Итого

 

 











Всего по ведомости 

 

 

Дата поставки:_____________                         Поставщик:______   _______  
Рисунок А.1 – Формат выходного документа
D
1

Ведомость об остатках

Но мер по по- рядку

Товар

Единица измерения

Вид упаковки

Количество

оставшихся товаров



наименование

код

код группы

наиме- нование

код по ОКЕИ



штук

1

2

3

4

5

6

7

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 













Итого

 













Всего по ведомости 

 


Рисунок А.2 – Формат выходного документа
D
2



Акт о недостаче

N по

Товар



Единица измерения

Цена.

Номер

Фактическая недостача

Сумма

поряд-
ку

наименование

код

наименование

код ОКЕИ

руб

инвен-
тарный

паспорта

количество

руб.

1

3

4

5

6

7

8

9

10

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 















Итого :   

 

 















Итого по описи :   

 

 


    продолжение
--PAGE_BREAK--Рисунок А.3 – Формат выходного документа
D
3




Номер по порядку

Товар

Поставщик

Единица измерения

Вид упаковки

Количество

Цена



наименование

код

код группы

код

наиме- нование

код по ОКЕИ



штук

руб. коп.

1

2



4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 















Итого

 

 

Бланк заказа
Рисунок А.4 – Формат выходного документа
D
4



                                            Объем продаж за период         

Номер по порядку

Дата продажи

Товар

Единица измерения

Вид упаковки

Количество

Цена





наименование

код

код группы

наиме- нование

код по ОКЕИ



штук

руб. коп.

1



3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 















Итого

 

 















Всего за период 



 


Рисунок А.5 – Формат выходного документа
D
5



Списания со склада  за период

Номер по порядку

Дата списания

Товар

Единица измерения

Вид упаковки

Количество

Цена





наименование

код

код группы

наиме- нование

код по ОКЕИ



штук

руб. коп.

1



3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 















Итого

 

 















Всего за период 

 

 

 

Рисунок А.6 – Формат выходного документа
D
6



 
Приходная накладная

Но- мер по по- рядку

Дата

Товар

Единица измерения

Вид упаковки

Количе-

Цена,

поставки

ство



 



наименование

код

наиме- нование

код по ОКЕИ

 

штук 

руб. коп 



1

2

3

4

5

6

7

8

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 















Итого

 

 















Всего по накладной 

 

 



Рисунок А.7 – Формат входного документа Д1
Расходная накладная

Но- мер по по- рядку

Товар

Единица измерения

Вид упаковки

Количество

Цена

 

наименование

код

наиме- нование

код по ОКЕИ

 

штук

руб. коп.

1

2

3

4

5

6

7

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 











Итого

 

 











Всего по накладной 

 

 


Рисунок А.8 – Формат входного документа Д2
Акт на списание товара

Номер по порядку

Товар



Единица измерения

Причина списания

Вид упаковки

Количество

Цена,
руб. коп.



наименование

код

наиме- нование

код по ОКЕИ





штук



1

2

3

4

5

6

7

8

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 





















 

 

 

 

 

 

 

 

 

 















Итого

 

 



Рисунок А.9 – Формат входного документа Д3


Инвентаризационная ведомость

N по

Товар



Единица измерения

Цена.

Номер

Фактическое наличие

Сумма

поряд-
ку

наименование

код

наименование

код ОКЕИ

руб

инвен-
тарный

пас-
порта

количество

руб.

1

3

4

5

6

7

8

9

10

11



















































































































Итого :



















Итого по описи :






Рисунок А.10 – Формат входного документа Д4    продолжение
--PAGE_BREAK--
Приложение Б

Руководство пользователя

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

         

          Б.1 Общие сведения

          Для работы системы необходимо иметь операционную систему Windows98/NT/2000/XP, MSOffice2000. Для удобства работы с программой расширение экрана должно быть 800х600, оперативная память не менее 64МГб, свободного места на диске не менее 50МГб, клавиатура, манипулятор типа «мышь», принтер.
          Б.2 Установка системы

          Скопируйте в рабочую директорию файл sklad.exe. Запустите его. Система не требует предварительной настройки.
          Б.3 Работа с системой

         

          Б.3.1 Описание предварительного диалога

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

          После регистрации пользователя следует запуск главное окно системы.
          Б.3.2 Описание меню системы

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

-       «Документы»;

-       «Правка»

-       «Справочники»;

-       «Отчёты»;

-       «Справка».
          Б.3.3 Описание работы с пунктом меню «Файл»

           Рассмотрим пункт меню «Документы». В этом разделе предоставляется доступ к журналам базы данных. Пункт меню «Файл» разделен на следующие подразделы:

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

-       «Продажи»;

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

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

          Эти подразделы предназначены для ввода документов «Приходная накладная», «Расходная накладная», «Акт на списание» и «Инвентаризационная ведомость». Рассмотрим работу их на примере подпункта меню «Продажи». Окно работы программы разделено на 2 части (см. рисунок 5.8). Первая часть предназначена для добавления новых записей на основе документа расходная накладная. Она имеет три поля для выбора наименования товара, заказчика,  сотрудника, ответственного за отгрузку товара из справочников «Наименования товаров», «Сотрудники», «Клиенты». Так же эта часть окна предоставляет выбор даты продажи товара, ввод номера документа и количества проданного товара. На данной форме имеется две кнопки управления: «Очистить форму» и «Добавить запись». При нажатии кнопки «Очистить форму» в форме добавления записи очищаются все выбранные записи. При нажатии кнопки «Добавить строку» в базу данных добавляется новая строка и в нее записываются выбранные значения из бланка добавления записи. В другой части окна мы имеем возможность просмотра внесённых изменений в таблицу базы данных «Продажи».
          Б.3.3 Описание работы с пунктом меню «Справочники»

          Рассмотрим пункт меню «Справочники». В этом пункте меню предоставляется доступ к справочникам базы данных. Пункт меню «Справочники» разделен на следующие подпункты:

-       «Товар»;

-       «Наименования товаров»;

-       «Группы товаров»;

-       «Сотрудники»;

-       «Должность»;

-       «Клиенты»;

-       «Поставщики»;

-       «Банки»;

-       «Причины списания».

Подпункты пункта меню «Справочники» предназначены для просмотра и редактирования справочников базы данных. Для этого предусмотрено два поля (см. рисунок 5.9): первое – добавление данных в справочник, второе – просмотр справочника системы. 
          Б.3.3 Описание работы с пунктом меню «Отчеты»

          В пункте меню «Отчеты» представлены все отчеты системы. К ним относят:

-       «Бланк заказа»;

-       «Объем продаж»;

-       «Ведомость остатков»;

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

При выборе пункта меню «Ведомость остатков» появляется окошко (см. рисунок 5.10), предлагающее выбрать группу товаров для вывода таблицы ведомости остатков. При нажатии кнопки «Отмена» управление программой переходит в главное меню. При нажатии кнопки «ОК» программа начинает формировать отчёт  «Ведомость остатков»   по введенным параметрам. Результаты формирования отчёта представлены на рисунке 5.11. На этой экранной форме имеется кнопка управления «Изменить параметры расчета». При нажатии этой кнопки программа открывает диалог задания параметров для формирования отчёта  «Ведомость остатков».

 В столбце optim_kolvoтаблицы «Ведомость остатков» указывается оптимальное количество товаров, рассчитанное исходя из затрат на хранение данного товара на складе. Значение 1 в столбце garantzapasпоказывает, что количество товара на данный момент меньше либо равно величине гарантийного запаса. Это означает, что пользователь увидев значение 1 в столбце должен пополнить запасы данного товара.

          Рассмотрим подпункт меню «Бланк заказа». При выборе этого подпункта меню организуется диалог с пользователем для задания параметров Бланка заказа (см. рисунок 5.12).  Пользователю предлагается ввести номер заказа и количество товаров в заказе,  а также  выбрать дату заказа, наименование товара, поставщика и сотрудника оформившего заказ для вывода таблицы заказы.

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

          Результаты формирования таблицы «Заказы» представлены на рисунке 5.12. На этой экранной форме имеется кнопка управления «Изменить параметры расчета». При нажатии этой кнопки программа открывает диалог задания параметров для формирования  «Бланка заказа».

           



Приложение В
Листинг программы
//---------------------------------------------------------------------------
#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------

USEFORM(«Unit1.cpp», Form1);

USEFORM(«Unit2.cpp», Form2);

USEFORM(«Unit3.cpp», Form3);

//---------------------------------------------------------------------------

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

        try

        {

                 Application->Initialize();

                 Application->CreateForm(__classid(TForm1), &Form1);

                 Application->CreateForm(__classid(TForm2), &Form2);

                 Application->CreateForm(__classid(TForm3), &Form3);

                 Application->Run();

        }

        catch (Exception &exception)

        {

                 Application->ShowException(&exception);

        }

        catch (...)

        {

                 try

                 {

                         throw Exception("");

                 }

                 catch (Exception &exception)

                 {

                         Application->ShowException(&exception);

                 }

        }

        return 0;

}

//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <vcl.h>

#pragma hdrstop
#include «Unit1.h»

#include «Unit2.h»

#include «Unit3.h»

#include «date.h»

#include <systdate.h>

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

//---------------------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender)

{

 Form1->Close();

}

//---------------------------------------------------------------------------
void __fastcall TForm1::N8Click(TObject *Sender)

{

  this->GroupBox2->Visible=false;

  this->GroupBox3->Visible=false;

  this->GroupBox4->Visible=false;

  this->GroupBox5->Visible=false;

  this->GroupBox6->Visible=false;

  this->GroupBox7->Visible=false;

  this->GroupBox13->Visible=false;

  this->GroupBox1->Visible=true;

  UpdateComboBoxGoods();

}

//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)

{

  this->GroupBox1->Visible=false;

  this->GroupBox3->Visible=false;

  this->GroupBox4->Visible=false;

  this->GroupBox5->Visible=false;

  this->GroupBox6->Visible=false;

  this->GroupBox7->Visible=false;

  this->GroupBox13->Visible=false;

  this->GroupBox2->Visible=true;

  UpdateComboBoxSale();

}

//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)

{

  this->GroupBox1->Visible=false;

  this->GroupBox2->Visible=false;

  this->GroupBox4->Visible=false;

  this->GroupBox6->Visible=false;

  this->GroupBox5->Visible=false;

  this->GroupBox7->Visible=false;

  this->GroupBox13->Visible=false;

  this->GroupBox3->Visible=true;

  UpdateComboBoxSupplies();

}

//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)

{

  this->GroupBox2->Visible=false;

  this->GroupBox3->Visible=false;

  this->GroupBox1->Visible=false;

  this->GroupBox5->Visible=false;

  this->GroupBox6->Visible=false;

  this->GroupBox7->Visible=false;

  this->GroupBox13->Visible=false;

  this->GroupBox4->Visible=true;

  UpdateComboBoxWrite_off();

}

//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)

{

  this->GroupBox2->Visible=false;

  this->GroupBox3->Visible=false;

  this->GroupBox1->Visible=false;

  this->GroupBox4->Visible=false;

  this->GroupBox6->Visible=false;

  this->GroupBox7->Visible=false;

  this->GroupBox13->Visible=false;

  this->GroupBox5->Visible=true;

  UpdateComboBoxInventory();

}

//---------------------------------------------------------------------------
void __fastcall TForm1::N29Click(TObject *Sender)

{

  this->GroupBox2->Visible=false;

  this->GroupBox3->Visible=false;

  this->GroupBox1->Visible=false;

  this->GroupBox4->Visible=false;

  this->GroupBox5->Visible=false;

  this->GroupBox7->Visible=false;

  this->GroupBox13->Visible=false;

  //  this->GroupBox6->Visible=true;

  Form1->Enabled=false;

  Form2->Show();
}

//---------------------------------------------------------------------------

void TForm1:: GZ()

{

 TDataSet *ds1 = DataSource18->DataSet;

 TDataSet *ds2 = DataSource20->DataSet;

 TDataSet *ds3 = DataSource19->DataSet;

 int S= 0;

 int tpost

 int zpost

 int length = ds1->RecordCount;

 AnsiString *str1 = new AnsiString[length];

 int gr = (int)Form1->Table1->FieldValues[«id_group»];

int dn = (int)Form1->Table1->FieldValues[«dn»];

 int dk = (int)Form1->Table1->FieldValues[«dk»];

 for (ds1->First(); !ds1->Eof; ds1->Next())

        {

        if(Form1->Table2->FieldValues[«id_group»]==gr)

                        {

                  S = 0;

                  for (ds2->First(); !ds2->Eof; ds2->Next())

                    Form1->Button11->Caption = «Zapasi»;

                        if(Form1->Table3->FieldValues[«id_name»]==Form1->Table2->FieldValues[«id_tov»])

                         if((int)Form1->Table3->FieldValues[«date»]>=dn && (int)Form1->Table3->FieldValues[«date»]<=dk && Form1->Table3->FieldValues[«id_packing»]==pac)

                                 S=S+ Form1->Table3->FieldValues[«amount»];

                  Form1->Table1->Append();

                  Form1->Table1->FieldValues[«id_name»] = Form1->Table2->FieldValues[«id_tov»];

                  Form1->Table1->FieldValues[«Vsale»] = S;

                  Form1->Table1->Post();

                 }

        }

Vprod = 0;

 for (ds3->First(), ds3->Next(); !ds3->Eof; ds3->Next())

        S = S + Form1->Table1->FieldValues[«Vsale»];

 for (ds3->First(), ds3->Next(); !ds3->Eof; ds3->Next())

        {

        Form1->Table1->Append();

        Form1->Table1->FieldValues[«spare»] = Form1->Table1->FieldValuesFGZ = (tpost + zpost) *  P – P* tpost

        Form1->Table1->Post();

        Form1->Query6->Active=false;

        Form1->Query6->Active=true;

        }

                  Form1->Query6->Active=false;

                  Form1->Query6->Active=true;

}

//---------------------------------------------------------------------------
void __fastcall TForm1::ORZClick(TObject *Sender)

{

  this->GroupBox2->Visible=false;

  this->GroupBox3->Visible=false;

  this->GroupBox1->Visible=false;

  this->GroupBox4->Visible=false;

  this->GroupBox5->Visible=false;

  this->GroupBox6->Visible=false;

  this->GroupBox13->Visible=false;

  //  this->GroupBox7->Visible=true;

  Form1->Enabled=false;

  Form3->Show();
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button11Click(TObject *Sender)    продолжение
--PAGE_BREAK--

{

Form1->GroupBox6->Visible=false;

}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)

{

  Form1->Enabled=false;

  Form2->Show();

}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button13Click(TObject *Sender)

{

Form1->GroupBox7->Visible=false;

}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button14Click(TObject *Sender)

{

  Form1->Enabled=false;

  Form3->Show();

}

//---------------------------------------------------------------------------
void TForm1::UpdateComboBoxGoods()

{

 ComboBox1->Clear();

 ComboBox2->Clear();

 ComboBox3->Clear();

 ComboBox4->Clear();

 ComboBox5->Clear();

 Query8->Active = false;

 Query8->Active = true;

 TDataSet *ds = DataSource8->DataSet;

 int length = ds->RecordCount;

 AnsiString *str = new AnsiString[length];

 int i = 0, j = 0;

 for (ds->First(); !ds->Eof; ds->Next())

 str[i++] = DataSource8->DataSet->FieldByName(«Tov»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox1->Items->Add(str[j]);

        }
 Query9->Active = false;

 Query9->Active = true;

 TDataSet *ds1 = DataSource9->DataSet;

 length = ds1->RecordCount;

 AnsiString *str1 = new AnsiString[length];

 i = 0;

 for (ds1->First(); !ds1->Eof; ds1->Next())

 str1[i++] = DataSource9->DataSet->FieldByName(«Group»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox2->Items->Add(str1[j]);

        }
 Query10->Active = false;

 Query10->Active = true;

 TDataSet *ds2 = DataSource10->DataSet;

 length = ds2->RecordCount;

 AnsiString *str2 = new AnsiString[length];

 i = 0;

 for (ds2->First(); !ds2->Eof; ds2->Next())

 str2[i++] = DataSource10->DataSet->FieldByName(«Naimenovanie»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox3->Items->Add(str2[j]);

        }
 Query11->Active = false;

 Query11->Active = true;

 TDataSet *ds3 = DataSource11->DataSet;

 length = ds3->RecordCount;

 AnsiString *str3 = new AnsiString[length];

 i = 0;

 for (ds3->First(); !ds3->Eof; ds3->Next())

 str3[i++] = DataSource11->DataSet->FieldByName(«Prodagi»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox4->Items->Add(str3[j]);

        }
 Query12->Active = false;

 Query12->Active = true;

 TDataSet *ds4 = DataSource12->DataSet;

 length = ds4->RecordCount;

 AnsiString *str4 = new AnsiString[length];

 i = 0;

 for (ds4->First(); !ds4->Eof; ds4->Next())

 str4[i++] = DataSource12->DataSet->FieldByName(«Proizvoditel»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox5->Items->Add(str4[j]);

        }

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)

{

  UpdateComboBoxGoods();

  Edit1->Text = "";

  Edit2->Text = "";

  Edit3->Text = "";

  Edit4->Text = "";

}

//---------------------------------------------------------------------------

void TForm1::UpdateComboBoxSale()

{

 ComboBox6->Clear();

 ComboBox7->Clear();

 ComboBox10->Clear();

 Query8->Active = false;

 Query8->Active = true;

 TDataSet *ds = DataSource8->DataSet;

 int length = ds->RecordCount;

 AnsiString *str = new AnsiString[length];

 int i = 0, j = 0;

 for (ds->First(); !ds->Eof; ds->Next())

 str[i++] = DataSource8->DataSet->FieldByName(«Tov»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox6->Items->Add(str[j]);

        }
 Query9->Active = false;

 Query9->Active = true;

 TDataSet *ds1 = DataSource9->DataSet;

 length = ds1->RecordCount;

 AnsiString *str1 = new AnsiString[length];

 i = 0;

 for (ds1->First(); !ds1->Eof; ds1->Next())

 str1[i++] = DataSource9->DataSet->FieldByName(«Group»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox7->Items->Add(str1[j]);

        }

 Query13->Active = false;

 Query13->Active = true;

 TDataSet *ds2 = DataSource13->DataSet;

 length = ds2->RecordCount;

 AnsiString *str2 = new AnsiString[length];

 i = 0;

 for (ds2->First(); !ds2->Eof; ds2->Next())

 str2[i++] = DataSource13->DataSet->FieldByName(«Surname»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox10->Items->Add(str2[j]);

        }

}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)

{

  UpdateComboBoxSale();

  Edit5->Text = "";

  Edit9->Text = "";

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

void TForm1::UpdateComboBoxSupplies()

{

 ComboBox8->Clear();

 ComboBox9->Clear();

 ComboBox11->Clear();

 Query8->Active = false;

 Query8->Active = true;

 TDataSet *ds = DataSource8->DataSet;

 int length = ds->RecordCount;

 AnsiString *str = new AnsiString[length];

 int i = 0, j = 0;

 for (ds->First(); !ds->Eof; ds->Next())

 str[i++] = DataSource8->DataSet->FieldByName(«Name»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox8->Items->Add(str[j]);

        }
// delete ds;

 Query9->Active = false;

 Query9->Active = true;

 TDataSet *ds1 = DataSource9->DataSet;

 length = ds1->RecordCount;

 AnsiString *str1 = new AnsiString[length];

 i = 0;

 for (ds1->First(); !ds1->Eof; ds1->Next())

 str1[i++] = DataSource9->DataSet->FieldByName(«Group»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox9->Items->Add(str1[j]);

        }

 Query13->Active = false;

 Query13->Active = true;

 TDataSet *ds2 = DataSource13->DataSet;

 length = ds2->RecordCount;

 AnsiString *str2 = new AnsiString[length];

 i = 0;

 for (ds2->First(); !ds2->Eof; ds2->Next())

 str2[i++] = DataSource13->DataSet->FieldByName(«Name»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox11->Items->Add(str2[j]);

        }

}

//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)

{

  UpdateComboBoxSupplies();

  Edit6->Text = "";

  Edit7->Text = "";
}

//---------------------------------------------------------------------------
void TForm1::UpdateComboBoxWrite_off()

{

 ComboBox12->Clear();

 ComboBox13->Clear();

 ComboBox14->Clear();

 ComboBox15->Clear();

 Query8->Active = false;

 Query8->Active = true;

 TDataSet *ds = DataSource8->DataSet;

 int length = ds->RecordCount;

 AnsiString *str = new AnsiString[length];

 int i = 0, j = 0;

 for (ds->First(); !ds->Eof; ds->Next())

 str[i++] = DataSource8->DataSet->FieldByName(«Tov»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox12->Items->Add(str[j]);

        }
 Query9->Active = false;

 Query9->Active = true;

 TDataSet *ds1 = DataSource9->DataSet;

 length = ds1->RecordCount;

 AnsiString *str1 = new AnsiString[length];

 i = 0;

 for (ds1->First(); !ds1->Eof; ds1->Next())

 str1[i++] = DataSource9->DataSet->FieldByName(«Group»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox13->Items->Add(str1[j]);

        }
 Query13->Active = false;

 Query13->Active = true;

 TDataSet *ds2 = DataSource13->DataSet;

 length = ds2->RecordCount;

 AnsiString *str2 = new AnsiString[length];

 i = 0;

 for (ds2->First(); !ds2->Eof; ds2->Next())

 str2[i++] = DataSource13->DataSet->FieldByName(«Name»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox14->Items->Add(str2[j]);

        }
 Query14->Active = false;

 Query14->Active = true;

 TDataSet *ds3 = DataSource14->DataSet;

 length = ds3->RecordCount;

 AnsiString *str3 = new AnsiString[length];

 i = 0;

 for (ds3->First(); !ds3->Eof; ds3->Next())

 str3[i++] = DataSource14->DataSet->FieldByName(«Spisanie»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox15->Items->Add(str3[j]);

        }

}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)

{

  UpdateComboBoxWrite_off();

  Edit10->Text = "";

  Edit8->Text = "";
}

//---------------------------------------------------------------------------
void TForm1::UpdateComboBoxInventory()

{

 ComboBox16->Clear();

 ComboBox17->Clear();

 ComboBox10->Clear();

 Query8->Active = false;

 Query8->Active = true;

 TDataSet *ds = DataSource8->DataSet;

 int length = ds->RecordCount;

 AnsiString *str = new AnsiString[length];

 int i = 0, j = 0;

 for (ds->First(); !ds->Eof; ds->Next())

 str[i++] = DataSource8->DataSet->FieldByName(«Name»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox16->Items->Add(str[j]);

        }
 Query9->Active = false;

 Query9->Active = true;

 TDataSet *ds1 = DataSource9->DataSet;

 length = ds1->RecordCount;

 AnsiString *str1 = new AnsiString[length];

 i = 0;

 for (ds1->First(); !ds1->Eof; ds1->Next())

 str1[i++] = DataSource9->DataSet->FieldByName(«Group»)->AsString;

 for (j = 0; j < length; j++)

        {

         ComboBox17->Items->Add(str1[j]);

        }

}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)

{

  UpdateComboBoxInventory();

  Edit11->Text = "";

  Edit12->Text = "";

  Edit14->Text = "";

}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button15Click(TObject *Sender)

{

Edit15->Text= "";

}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button17Click(TObject *Sender)

{

Edit13->Text = "";

}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button19Click(TObject *Sender)

{

Edit16->Text = "";

}

//---------------------------------------------------------------------------
void __fastcall TForm1::N9Click(TObject *Sender)

{

  this->GroupBox2->Visible=false;

  this->GroupBox3->Visible=false;

  this->GroupBox1->Visible=false;

  this->GroupBox4->Visible=false;

  this->GroupBox6->Visible=false;

  this->GroupBox7->Visible=false;

  this->GroupBox5->Visible=false;

  this->GroupBox13->Visible=true;
}

//---------------------------------------------------------------------------
void __fastcall TForm1::N10Click(TObject *Sender)

{

  this->GroupBox2->Visible=false;

  this->GroupBox3->Visible=false;

  this->GroupBox1->Visible=false;

  this->GroupBox4->Visible=false;

  this->GroupBox6->Visible=false;

  this->GroupBox7->Visible=false;

  this->GroupBox5->Visible=false;

  this->GroupBox13->Visible=true;
}

//---------------------------------------------------------------------------
void __fastcall TForm1::N11Click(TObject *Sender)

{

  this->GroupBox2->Visible=false;

  this->GroupBox3->Visible=false;

  this->GroupBox1->Visible=false;

  this->GroupBox4->Visible=false;

  this->GroupBox6->Visible=false;

  this->GroupBox7->Visible=false;

  this->GroupBox5->Visible=false;

  this->GroupBox13->Visible=true;
}

//---------------------------------------------------------------------------    продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по логике