Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Проектирование реализации операций бизнес-процесса «Складской учет»(АО «КазТрансОйл»)

Содержание:

Введение

На исследуемом предприятии АО «КазТрансОйл», занимающемся оптовой торговлей, все расчеты происходят в безналичной форме. Оно непрерывно получает прибыль от торговой надбавки при продаже оптовых партий товара. У предприятия есть множество складов, поэтому отгрузка и погрузка, а также проверка наличия продукции на складе проходит рядом с офисом.

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

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

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

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

Целью курсовой работы является совершенствование системы автоматизации складского учета через разработку информационной системы складского учета для АО «КазТрансОйл».

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

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

Для достижения поставленной цели необходимо решить ряд задач:

1. Изучить существующие бизнес – процессы на предприятии;

2. Определить проблему;

3. Разработать программу и провести ее тестирование.

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

1. Аналитическая часть

1.1. Выбор комплекса задач автоматизации

АО «КазТрансОйл» приобретает продукцию в большом количестве. Сложная технологическая цепочка требует тщательного учета поступающей и реализуемой продукции со склада.

Учет материалов является важной частью учета на складе АО «КазТрансОйл». Бухгалтерский учет призван контролировать движение материальных ценностей, а также готовой продукции. Для учета в условиях современной экономики необходимо автоматизировать учет складских операций и реализации продукции. В АО «КазТрансОйл» существует много недостатков в учете движения товарно-материальных ценностей. Учет ведется в суммовом выражении. Это не позволяет видеть количество запасов по всему ассортименту. Начальник склада должен постоянно видеть остатки на складе предприятия по всем наименованиям, чтобы регулировать поступление продукции.

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

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

Целью автоматизированной системы является создание единой информационной сети, позволяющей эффективно хранить, обрабатывать анализировать и ис­пользовать информацию по учету складских операций и реализации про­дукции. Сотрудники оптовых предприятий более половины рабочего вре­мени затрачивают на выполнение многочисленных трудоемких учетно-технических операций обработки информации, связанных с оперативным учетом поступления, продажи и запасом товаров. Выполнение элементар­ных процедур обработки данных не требует специальных знаний. По ме­ре роста объема информации доля работ возрастает. Это ведет к уменьшению времени на выполнение таких важных творческих работ, как изучение конъюнктуры торговли, определение потребности в товарах, контроль, анализ и регулирование поставок и запасов товаров и т.п. Массовые, повторяющиеся операции по оформлению готовых к продаже товаров, ведению оперативного учета относятся к числу задач, поддающихся формализации и, следовательно, автоматизации [1].

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

Хорошие складские системы вне зависимости от их масштаба, программно - аппаратной платформы и стоимости должны обеспечивать качественное ведение учета, быть надежными и удобными в эксплуатации. В функциональном аспекте складские системы должны, по крайней мере, безошибочно производить арифметические расчеты; обеспечивать подготовку, заполнение, проверку и распечатку первичных и отчетных документов произвольной формы; осуществлять безошибочный перенос данных из одной печатной формы в другую; производить накопление итогов и исчисление процентов произвольной степени сложности; обеспечивать обращение к данным и отчетам за прошлые периоды (вести архив) [19].

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

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

1.2. Характеристика существующих бизнес – процессов

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

Генеральный директор

Главный бухгалтер

Отдел снабжения

Отдел сбыта

Бухгалтерия

Склад

Менеджеры

Кладовщик

Грузчики

Начальник склада

Отдел экономической безопасности

Системный администратор

Охрана

Водители

Финансовый отдел

Финансовый директор

Экономист - аналитик

Выписка

Касса

Платежи

Архив

Рисунок 1 - Внутренняя организационная структура АО «КазТрансОйл»

Главным действующим лицом на предприятии АО «КазТрансОйл» является генеральный директор. Он непрерывно контролирует работу всех отделов и отслеживает движение финансовых потоков в нужном направлении. Директора назначает Совет акционеров.

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

Важную часть учетной работы в АО «КазТрансОйл» берет на себя экономист-аналитик, который следит за установкой отпускной цены на товары. Для этого он непрерывно собирает и обрабатывает массу информации, проводит анализ и рассчитывает итоговые показатели от возможных изменений. Главная задача аналитика – своевременно обнаружить пути повышения финансовой стабильности и прибыльности.

Отдел снабжения АО «КазТрансОйл» отвечает за закупку товаров. Его сотрудники подбирают поставщиков с наиболее выгодными условиями и производят закупки на основании заявок покупателей, которые принимают менеджеры.

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

Бухгалтерия АО «КазТрансОйл» состоит из подотчетных отделов:

- главный бухгалтер;

- выписка;

- платежи;

- касса;

- архив.

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

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

В отделе «платежи» происходит отправка и получение платежей с помощью банковской программы. Сотрудники отдела оплачивают счета поставщиков, а также получают оплату и другие поступления от покупателей на расчетный счет предприятия [17].

Кассир АО «КазТрансОйл» занимается распределением наличных денег, выдает заработную плату, выделяет средства на различные хозяйственные нужды и командировочные расходы.

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

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

Рисунок 2 - Схема информационных потоков предприятия

Информационные потоки предприятия изображены на Рисунке 3. Из рисунка 2 видно, что клиент оставляет заявку на товар у менеджера. Он выставляет счет и резервирует на складе необходимое количество товара. Если продукции на складе не хватает, менеджер оформляет заявку на поставку с указанием срока [19].

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

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

1.3. Характеристика документооборота, возникающего при решении задачи

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

Работа склада делится на три основных этапа:

-приемка товара;

-хранение;

-отпуск товара.

Основными этапами приемки товара являются:

-разгрузка товара;

-проверка товара по количеству;

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

-регистрация принятых товаров.

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

Для контроля и учета товарных потоков используют самые разнообразные формы документов. Главное назначение этих документов состоит в том, чтобы обеспечить тщательный учет всех товаров, поступающих на склад. После разгрузки оформляются приемо-сдаточные документы: делается приходный ордер, в товарно-транспортных накладных экспедитор расписывается в том, что он сдал, а приемщик - в том, что он принял товар, ставится печать. После этого делаются копии документов, три экземпляра остаются на складе (один оригинал и 2 копии) и второй оригинал возвращаются поставщику [6].

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

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

Хранение товаров включает выполнение следующих операций:

-организация складского пространства;

-размещение, движение, перемещение товаров;

-создание необходимых условий хранения и надежной охраны товаров;

-организация учета товаров;

-обеспечение возможности применения подъемно-транспортного оборудования;

-прочие операции.

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

Планировка складского помещения должна отвечать следующим требованиям [20]:

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

-исключать отрицательное влияние одних товаров на другие при хранении;

-обеспечивать возможность применения подъемно-транспортного оборудования;

-соблюдение правил пожарной безопасности при размещении товара на складе.

Отпуск товара со склада производится различными способами, однако должны выполняться при этом определенные требования, без соблюдения которых нельзя производить отгрузку, т.е. все сопроводительные документы должны быть соответственно оформлены: товарно-транспортная накладная должна быть подписана менеджером, чей товар отпускается; генеральным директором, разрешающим отпуск, или лицом, его заменяющим: скреплена печатью. Накладная также может иметь пометку об оплате товара (указывается № счета и дата поступления денег на р/с продавца). В некоторых случаях при налаженных связях с товарополучателем отпуск товара может производиться при предъявлении платежного поручения с исполнением. Если получателем является юридическое лицо, то к накладной прикладывается доверенность на получение товара. После этого лицо, получающее товар, расписывается в том, что он получил товар. Копия накладной остается на складе, один оригинал отправляется в бухгалтерию (после отражения этой операции в складском учете), второй оригинал остается у получателя товара [12].

1.4. Обоснование проектных решений по информационному обеспечению

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

При разработке такой системы заказчикам необходимо частично переосмыслить весь бизнес-процесс и учесть уже имеющиеся программы, чтобы не потерять вложенные средства. И хотя некоторое улучшение производительности ведения дел в компании может быть достигнуто просто за счет автоматизации уже существующей системы учета товаров «вручную», радикального улучшения можно добиться только при кардинальном пересмотре ведения бизнеса. Однако, так же как архитектура системы определяет ее реализацию, общее видение бизнеса определяет всю систему. Исходя из данной предпосылки, начинать следует с рассмотрения общего плана ведения складского учета. По результатам системного анализа можно выделить семь основных функций системы [7]:

1. Учет заказов

Прием заказов от клиентов и ответы на запросы клиентов о состоянии заказов.

2. Ведение счетов

Направление счетов клиентам и отслеживание платежей. Прием счетов от поставщиков и отслеживание платежей поставщикам.

3. Отгрузка со склада

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

4. Складской учет

Постановка прибывающих товаров на учет и снятие товаров с учета при отправке заказов.

5. Закупки

Заказ товаров поставщикам и отслеживание поставок.

6. Получение

Принятие на склад товаров от поставщиков.

7. Планирование

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

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

В прошлом бизнес-приложения имели обычный текстовый интерфейс, и это считалось нормальным. Однако общее снижение цен на компьютеры и широкое распространение графических интерфейсов пользователя обуславливают необходимость внедрения графических приложений. Надо помнить, что для системы складского учета интерфейс пользователя является всего лишь небольшой (хотя и важной) частью. Ядром системы является база данных; пользовательский интерфейс можно рассматривать как оболочку вокруг этого ядра. Для данной системы можно (и даже желательно) создать несколько интерфейсов. Простой, базирующийся на меню, - для клиентов, заполняющих заявки на товар. Современный, типа Windows, - для решения бухгалтерских задач, а также планирования и закупок. Отчеты могут печататься в пакетном режиме, однако некоторым менеджерам могут понадобиться средства для просмотра графиков на экране.

1.5. Обоснование проектных решений по программному обеспечению

СУБД Access относится к числу одних их самых гибких, мощных, простых в применении СУБД, ориентирована она на пользователей Microsoft Office, включая также и пользователей малознакомых с программированием.

MS Access является реляционной СУБД, в которой сбалансированы разные возможности и средства, обычные для современных СУБД. Реляционная база дает возможность вести всесторонний анализ содержащихся в ней данных, упрощает поддержку, поиск и защиту данных, потому что индексы, таблицы, правила ссылочной целостности, список пользователей, бизнес-правила, а также отчеты и формы находятся на хранении в одном отдельном файле [2].

В составе Access входят:

- средства манипуляции информацией Access, данными, которые доступны в ODBC (последние могут быть «присоединены» к базе данных Access);

- средства создания отчетов, форм, приложений; в то же время отчеты имеют возможность экспортироваться в формат Microsoft Excel или Microsoft Word;

- средства разработки приложений клиентов для Microsoft SQL Server;

- средства создания интерактивных Web-приложений для работы с данными (Data Access Pages);

- средства публикации отчетов в Internet;

- средства доступа к информации серверных СУБД посредством OLE DB;

- средства администрирования Microsoft SQL Server.

СУБД Access для работы с информацией ипользует процессор БД Microsoft Jet 3.0, объекты доступа к информации, средства оперативного формирования интерфейса - это Конструктор форм. Для распечаток используются конструкторы отчетов. Для автоматизации рутинных операций разработчиками предусмотрены макрокоманды. В случаях, когда функциональность визуальных средств является недостаточной, разработчиками пользователям предоставлена возможность создавать собственные функции и процедуры. А в макрокоманды могут быть включены вызовы функций. Аналогичным образом макрокоманды могут быть вызваны из функций и процедур [13].

Несмотря на ориентированность, непосредственно на конечного пользователя в СУБД Access предусмотрено использование языка программирования Visual Basic for Application, который предоставляет пользователю возможность создвать собственные типы данных, массивы, вызывать DLL-функции, при помощи OLE Automation осуществлят контроль работы приложений, которые могут функционировать в качестве OLE -серверов. Кроме того можно полностью создавать базы данных посредством кодирования, когда в этом есть такая необходимость [4].

MS Access из всех существующих средств разработки имеет наиболее богатый набор визуальных средств. И, тем не менее, кодировать приходится именно в Access. Ведь ни одно существующее приложение, которое не предназначено исключительно для себя, создать хотя бы без одной строки кода не представляется возможным. Для активного коммерческого распространения приложений, созданных на Access, существует пакет Access Developer Toolkit, вместе с которым также поставляются и дополнительные объекты ActiveX.

Одним из главных качеств Access, привлекающее к нему разных пользователей является интеграция с Microsoft Office. Например, проведя процедуру копирования в буфер графического образа таблицы, открыв лист Microsoft Word, применив специальную вставку из буфера обмеа, сразу будет получена готовая таблицу с показателями из БД в документе [9].

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

Специфическая особенность СУБД Ассеss состоит в том, что все информационные сведения, относящиеся к одной БД, хранятся в общем файле. Данный файл имеет расширение вида *.mdb. Указанное решение чаще всего оказывается удобным для непрофессиональных пользователей, т.к. обеспечивает простоту в ходе переноса данных с одного рабочего места на другое. Что же касается внутренней организации данных в пределах mbd-формата, то она изменялась от одной версии к другой, но компания Microsoft поддерживала их совместимость снизу вверх, иначе говоря, БД из файлов в формате ранних версий Access могут конвертироваться в формат, который используется в более поздних версиях [5].

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

Microsoft Access более всего удобен не только для программистов, но также и для обычных пользователей, что обусловлено наличием русифицированного интерфейса. Было принято решение в качестве СУБД воспользоваться MS ACCESS.

2. Проектная часть

2.1. Информационная модель и её описание

Контекстная диаграмма, представленная на рисунке 4, реализована с применением методологии IDEF0. Главная компонента в ней – это диаграмма (т.е. активность) под названием «Ведение складского учета».

Рисунок 3 - Контекстная диаграмма

Организация взаимодействия базовых компонентов системы (т.е. «механизмы») осуществляется на основе установленных прав доступа какого-либо компонента (т.е. «Управление»). Взаимодействие данных компонент системы осуществляется в заданном режиме согласно определенным правам.

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

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

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

Выходной информацией у этой системы является:

а) продукция, которая отгружается клиентам;

б) разнообразные отчеты (о номенклатуре продукции, о фактическом и плановом остатках продукции, всевозможные накладные).

Функциональная декомпозиция системы, представленная на рисунке 5, производится на базе методологии типа IDEF0. При детализации этого процесса было выявлено четыре подпроцесса. На данном этапе выполнению подлежат такие функции как:

1) обработка заявки на товарную продукцию;

2) формирование заявки на закупку товарной продукции;

3) формирование необходимых отчетов;

4) координирование деятельности.

Рисунок 4 - Диаграмма декомпозиции

Далее следует рассмотреть каждый подпроцесс более подробно.

1. «Обработать заявку на продукцию»

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

Процесс обработки заявок на продукцию производится следующим образом: Менеджер по продажам регистрирует заявки, которые поступают от клиентов, группирует их по датам, а также по срокам выполнения. Далее производится анализ наличия требуемого количества товаров на складе. В случае, если такое количество товарных единиц имеется, продукция отгружается клиенту, если нет, данные о необходимом количестве товаров отправляют в отдел снабжения [11].

Дальнейшая декомпозиция проводилась с использованием методологии DFD (рис.5) На диаграмме наглядно представлены движения потоков данных.

Рисунок 5 - Диаграмма декомпозиции процесса «Обработать заявку на продукцию»

2. «Сформировать заявку на закупку продукции»

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

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

Декомпозиция данного процесса проводилась с использованием методологии DFD (рис. 6)

Рисунок 6 - Диаграмма декомпозиции процесса «Обработать заявку на продукцию»

3. «Сформировать отчет»

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

4. «Координировать деятельность»

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

2.2. Характеристика нормативно-справочной, входной и оперативной информации

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

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

2.3. Характеристика результатной информации

Выходной информацией у этой системы является:

а) продукция, которая отгружается клиентам;

б) разнообразные отчеты (о номенклатуре продукции, о фактическом и плановом остатках продукции, всевозможные накладные).

2.4. Общие положения (дерево функций и сценарий диалога)

Меню приложения представляет собой иерархическую древовидную структуру.

Пользовательское меню представлено 4 категориями:

  1. Файл

- Выход – при выборе пользователем данного пункта происходит завершение работы с программой.

2) Справочники – обеспечивает работу со всеми справочниками системы

- Категории – справочник категорий продукции

- Ед. измерения – справочник единиц измерения

- Виды упаковки – справочник видов упаковки

- Виды товаров – справочник видов товаров

- Производители – справочник производителей продукции

- Ед. измерения – справочник товаров. Обеспечивает работу с товарной номенклатурой.

- Клиенты – справочник клиентов предприятия

- Поставщики – справочник поставщиков продукции предприятия

- Снабженцы – справочник менеджеров по снабжению

3) Операции – основное меню. Отвечает за выполнения операций прихода, расхода и списания продукции.

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

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

- Приход продукции – обеспечивает работу с интерфейсом, обеспечивающим произведение менеджерами по снабжению приходных операций (оприходование продукции, поступающей от поставщиков предприятия).

4) Отчеты - обеспечивает взаимодействие с модулем, отвечающим за построение отчетов

- Товарный ассортимент – выводит отчет о товарной номенклатуре продукции

- Необходимые поставки – выводит отчет о необходимом количестве каждой номенклатурной единицы, исходя из имеющихся договоров на заказанную продукцию [14].

Структура пользовательского меню приведена на рисунке 8.

Рисунок 8 - Структура пользовательского меню

2.5. Характеристика базы данных

Модель системы автоматизации складского учета представлена на рисунке 9.

Рисунок 9 - Схема физической модели базы данных

Структура данных представлена таблицами 4-19. Назначение каждой из таблиц, а также их

Сущность client хранит информацию о клиентах предприятия. Атрибуты сущности client представлены в таблице 4.

Таблица 4 – Атрибуты сущности client

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

Тип поля

Описание поля

idClient

Автоинкрементный

Обеспечение уникальности записи

Client_name

Текстовый[60]

Наименование клиента

Client_inn

Текстовый[20]

ИНН клиента

Client_adress

Текстовый[60]

Адрес клиента

Client_bank

Текстовый[200]

Банковские реквизиты клиента

Сущность cl_z хранит информацию о каждом из заказов сделанных клиентами. Атрибуты сущности cl_z представлены в таблице 5.

Таблица 5 – Атрибуты сущности cl_z

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

Тип поля

Описание поля

idCl_Z

Автоинкрементный

Обеспечение уникальности записи

Cl_Z_znum

Текстовый[50]

Номер заказа

Cl_Z_acnum

Текстовый[50]

Номер счета

Cl_Z_date

Дата

Дата заказа

Cl_Z_client

Числовой

Поле связи с таблицей клиентов

Cl_Z_men

Числовой

Поле связи с таблицей менеджеров

Cl_Z_note

Текстовый[150]

Примечание

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

Таблица 6 – Атрибуты сущности men

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

Тип поля

Описание поля

idMen

Автоинкрементный

Обеспечение уникальности записи

Men_name

Текстовый[60]

ФИО менеджера

Men_work

Текстовый[50]

Направление деятельности менеджера

Men_note

Текстовый[150]

Примечание

Сущность tovar хранит информацию о товарном ассортименте складского предприятия. Атрибуты сущности Tovar и их описания представлены в таблице 7.

Таблица 7 – Атрибуты сущности tovar

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

Тип поля

Описание поля

idClient

Автоинкрементный

Обеспечение уникальности записи

Tovar_num

Текстовый[50]

Поле связи

Tovar_name

Текстовый[60]

Поле связи

Tovar_quan

Числовой

ФИО сотрудника

Tovar_cat

Числовой

Поле связи с таблицей категорий

Tovar_inch

Числовой

Поле связи с таблицей ед. измерений

Tovar_pack

Числовой

Поле связи с таблицей упаковки

Tovar_vid

Числовой

Поле связи с таблицей виды

Tovar_manuf

Числовой

Поле связи с таблицей производителей

Tovar_note

Текстовый[100]

Примечание

Сущность raschod содержит информацию о расходе товара в соответствии с заявками клиентов. Атрибуты сущности raschod представлены в таблице 8.

Таблица 8 – Атрибуты сущности raschod

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

Тип поля

Описание поля

idRaschod

Автоинкрементный

Обеспечение уникальности записи

idCl_Z

Числовой

Поле связи с таблицей заказ клиента

Raschod_tovar

Числовой

Поле связи с таблицей товар

Raschod_quan

Числовой

Количество

Raschod_price

Денежный

Единицы продукции

Сущность inch является справочником единиц измерения для продукции. Атрибуты сущности inch представлены в таблице 9.

Таблица 9 – Атрибуты сущности inch

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

Тип поля

Описание поля

idInch

Автоинкрементный

Обеспечение уникальности записи

Inch_name

Текстовый(50)

Наименование ед. измерения

Inch_short

Текстовый(15)

Короткое название единицы измерения

Сущность manuf является справочником производителей продукции. Атрибуты сущности manuf представлены в таблице 10.

Таблица 10 – Атрибуты сущности manuf

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

Тип поля

Описание поля

idManuf

Автоинкрементный

Обеспечение уникальности записи

Manuf_name

Текстовый(50)

Наименование производителя

Manuf_note

Текстовый(200)

Примечание

Сущность pack является справочником видов упаковки. Атрибуты сущности pack представлены в таблице 11.

Таблица 11 – Атрибуты сущности pack

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

Тип поля

Описание поля

idPack

Автоинкрементный

Обеспечение уникальности записи

Pack_name

Текстовый(50)

Наименование упаковки

Pack_short

Текстовый(15)

Короткое название упаковки

Сущность cat является справочником категорий продукции. Атрибуты сущности cat представлены в таблице 12.

Таблица 12 – Атрибуты сущности cat

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

Тип поля

Описание поля

IdCat

Автоинкрементный

Обеспечение уникальности записи

Cat_name

Текстовый(50)

Наименование категории

Cat_note

Текстовый(200)

Примечание

Сущность vid является справочником видов продукции. Атрибуты сущности vid представлены в таблице 13.

Таблица 13 – Атрибуты сущности vid

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

Тип поля

Описание поля

IdVid

Автоинкрементный

Обеспечение уникальности записи

Vid_name

Текстовый(50)

Наименование вида продукции

Vid_note

Текстовый(200)

Примечание

Сущность suppl хранит информацию о поставщиках продукции. Атрибуты сущности suppl представлены в таблице 14.

Таблица 14 – Атрибуты сущности suppl

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

Тип поля

Описание поля

IdSuppl

Автоинкрементный

Обеспечение уникальности записи

Suppl_name

Текстовый[60]

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

Suppl _inn

Текстовый[20]

ИНН поставщика

Suppl _adress

Текстовый[60]

Адрес поставщика

Suppl _bank

Текстовый[200]

Банковские реквизиты поставщика

Сущность suppl_z хранит информацию о каждом из приходных документов, по которым производилась поставка продукции. Атрибуты сущности suppl_z представлены в таблице 15.

Таблица 15 – Атрибуты сущности suppl_z

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

Тип поля

Описание поля

idSuppl_Z

Автоинкрементный

Обеспечение уникальности записи

Cl_Suppl_znum

Текстовый[50]

Номер заказа

Cl_Suppl_acnum

Текстовый[50]

Номер счета

Cl_Suppl_date

Дата

Дата заказа

Cl_Suppl_Suppl

Числовой

Поле связи с таблицей поставщиков

Cl_Z_Snabj

Числовой

Поле связи с таблицей менеджеров по снабжению

Cl_Z_note

Текстовый[150]

Примечание

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

Таблица 16 – Атрибуты сущности snabj

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

Тип поля

Описание поля

id snabj

Автоинкрементный

Обеспечение уникальности записи

snabj _name

Текстовый[60]

ФИО менеджера

snabj _work

Текстовый[50]

Направление деятельности менеджера по снабжению

snabj _note

Текстовый[150]

Примечание

Сущность prihod содержит информацию о приходе товара в соответствии с заявками на продукцию. Атрибуты сущности prihod представлены в таблице 17.

Таблица 17 – Атрибуты сущности prihod

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

Тип поля

Описание поля

idPrihod

Автоинкрементный

Обеспечение уникальности записи

IdSuppl_Z

Числовой

Поле связи с таблицей заявка на поставку

Prihod_tovar

Числовой

Поле связи с таблицей товар

Prihod_quan

Числовой

Количество

Prihod_price

Денежный

Цена единицы продукции

Сущность spisanie содержит информацию о списании продукции, а также причине списаний. Атрибуты сущности spisanie представлены в таблице 18.

Таблица 18 – Атрибуты сущности spisanie

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

Тип поля

Описание поля

idSpis

Автоинкрементный

Обеспечение уникальности записи

Spis_date

Дата

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

Spis_Tovar

Числовой

Поле связи с таблицей товар

Spis_quan

Числовой

Списываемое количество

Spis_reason

Текстовый[150]

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

Структура связей между сущностями приведена в таблице 19.

Таблица 19 – Описание связей

Связываемые сущности

Тип связи

Описание

snabj – suppl_z

один ко многим

Каждый из менеджеров по снабжению может обслуживать одну или несколько заявок

suppl – suppl_z

один ко многим

По каждому из поставщиков может быть одна или несколько заявок на продукцию

suppl_z – prihod

один ко многим

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

tovar – spisanie

один ко многим

По каждому наименование продукции может быть одно и несколько списаний

tovar – raschod

один ко многим

По каждому наименованию товара может быть одна и несколько расходных операций

tovar – pack

один ко многим

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

tovar – cat

один ко многим

К каждой из категорий может относится несколько наименований продукции

tovar – manuf

один ко многим

Каждый из производителей может производить одно или более наименований продукции

tovar – inch

один ко многим

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

tovar – vid

один ко многим

К одному виду продукции могут относится несколько наименований

men – cl_z

один ко многим

Каждый из менеджеров может обслуживать одну или несколько заявок

cl_z - raschod

один ко многим

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

client – cl_z

один ко многим

По каждому из клиентов может быть одна или несколько заявок.

tovar – prihod

один ко многим

По каждому наименованию товара может быть одна и несколько приходных операций

Произведенный анализ схемы отношений, показавший отсутствие зависимостей многозначного типа в существующей инфологической модели, позволяет нам сделать вывод о том, что отношения находятся в 3-ей нормальной форме [8].

2.6. Структурная схема пакета (дерево вызова программных модулей)

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

На рисунке 9 приведена диаграмма вариантов использования системы «Складской учет», которая демонстрирует взаимодействие пользователей с данной системой.

Рисунок 9 – Диаграмма вариантов использования системы «Складской учет»

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

- Отчет о товарном ассортименте продукции

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

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

Вариант использования «Оформить приход» используется для занесения данных о поступлении продукции на склад. С данным вариантом использования взаимодействует менеджер по продажам. Также данный вариант использует вариант «Работать со справочниками».

Вариант использования «Оформить расход» используется для занесения данных об отгрузке продукции по договорам покупателям. С данным вариантом использования взаимодействует менеджер по снабжению. Также данный вариант использует вариант «Работать со справочниками». Этот вариант использования расширяется вариантом «Оформить списание», в котором происходит списание выбранной продукции [16].

2.7. Контрольный пример реализации проекта и его описание

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

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

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

Рисунок 11 - Категории

Рисунок 12 - Справочник единиц измерения

Рисунок 13 - Виды товаров

Рисунок 14 - Справочник производителей

Рисунок 15 - Клиенты

Рисунок 16 - Поставщики

Рисунок 17 - Снабженцы

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

Рисунок 18 - Товары

При выборе пункта «Расход продукции» на экране отображается форма «Заявки» (см. рисунок 19), на которой отображаются данные о заявках на продукцию, а также ниже расположена подчиненная таблица содержащая перечень наименований продукции с указанием количества по каждой позиции. Для добавления/редактирования данных о содержании заявки необходимо нажать кнопку добавить/Изменить. При этом на экране появится форма «Редактирование содержания заявки» изображенная на рисунке 20. На этой форме происходит выбор наименования продукции из справочника товаров, а также указывается количество заказываемого товара.

Рисунок 19 - Заявки

Рисунок 20 - Редактирование содержания заявки

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

При нажатии на кнопку «Печать заявки» пользователю для просмотра представляется заявка, готовая для печати (см. Рисунок 21).

Рисунок 21 - Расходный документ

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

При нажатии на кнопку «Списание продукции» на экране отображается одноименная форма (см. рисунок 22). На данной форме по выбранной продукции отображается история списаний. Для добавления информации по списанию необходимо заполнить поля «Дата», «Количество» и «Причина» и нажать кнопку «Добавить». Для удаления данных о списании продукции необходимо выбрать нужную запись и нажать кнопку «Удалить».

Рисунок 22 - Списание продукции

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

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

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

При нажатии на кнопку «Печать документа» пользователю для просмотра представляется заявка, готовая для печати (см. Рисунок 23).

Рисунок 23 - Приходный документ

При выборе пункта меню «Отчеты» -> «Товарный ассортимент» на экране отображается ассортимент имеющейся продукции, который можно вывести на печать.

При выборе пункта меню «Отчеты» -> «Товарный ассортимент» на экране отображается ассортимент имеющейся продукции, который можно вывести на печать (см. Рисунок 24).

Рисунок 24 - Ассортимент продукции

При выборе пункта меню «Отчеты» -> «Необходимые поставки» на экране отображается ассортимент имеющейся продукции, цена, запас, количество необходимое по заявкам, а также остатки после исполнения заявок (см. Рисунок 25).

Рисунок 25 - Отчет о необходимых поставках

Заключение

В ходе выполнения курсового проекта была изучена работа предприятия АО «КазТрансОйл».

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

Автоматизированная система поддерживает все операции, связанные с учетом, обработкой и предоставлением необходимых данных:

1. Учет заказов

Прием заказов от клиентов и ответы на запросы клиентов о состоянии заказов.

2. Ведение счетов

Направление счетов клиентам и отслеживание платежей. Прием счетов от поставщиков и отслеживание платежей поставщикам.

3. Отгрузка со склада

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

4. Складской учет

Постановка прибывающих товаров на учет и снятие товаров с учета при отправке заказов.

5. Закупки

Заказ товаров поставщикам и отслеживание поставок.

6. Получение

Принятие на склад товаров от поставщиков.

7. Планирование

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

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

Реализация системы проводилась с использованием инструментальных средств MS Visual Basic в сочетании с СУБД MS ACCESS. При написании программы основное внимание было уделено удобству работы пользователя и построению дружественного интерфейса.

Список литературы

  1. Афонин В.Л., Моделирование систем: учебно-практическое пособие [Текст] / В.Л. Афонин - М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. – 232 с.
  2. Баженова И.Ю., Основы проектирования приложений баз данных [Текст] / И.Ю. Баженова - М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. – 261 с.
  3. Базовые средства программирования на Visual Basic в среде VisualStudio Net. Практикум: Учебное пособие. Гриф МО РФ [Текст] - М.: Инфра-М Форум, 2017. – 288 с.
  4. Голицына О.Л., Основы проектирования баз данных. [Текст]: Учебное пособие / О.Л. Голицына - М.: Форум, 2016. – 416 с.
  5. Дадян Э.Г., Методы, модели, средства хранения и обработки данных [Текст] / Э.Г. Дадян - М.: Инфра-М, 2017. – 268 с.
  6. Даниленко А.В., Безопасность систем электронного документооборота. Технология защиты электронных документов [Текст] / А.В. Даниленко - М.: URSS, 2015. – 232 с.
  7. Джесси Р., Проектирование баз данных [Текст] / Р. Джесси - М.: VSD, 2013.
  8. Долганова О.В., Моделирование бизнес-процессов. Учебник и практикум для академического бакалавриата [Текст] / О.В. Долганова - М.: Издательство: Юрайт, 2016. – 289 с.
  9. Иванова Г.С., Объектно-ориентированное программирование [Текст] / Г.С. Иванова - М.: Московский Государственный Технический Университет (МГТУ) имени Н.Э. Баумана, 2014. – 456 с.
  10. Кагаловский, М.Р. Технология баз данных на персональных ЭВМ [Текст] / М.Р. Кагаловский − М.: Финансы и статистика, 2014. – 224 с.
  11. Казанский А.П., Объектно-ориентированный анализ и программирование на visual basic 2013. Учебник для прикладного бакалавриата [Текст] / А.П. Казанский - М.: Юрайт, 2016. – 290 с.
  12. Казиев В.М., Введение в анализ, синтез и моделирование систем. Учебное пособие [Текст] / В.М. Казиев - М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2014. – 244 с.
  13. Кириллов В.В., Введение в реляционные базы данных. Учебник (+ CD-ROM) [Текст] / В.В. Кириллов - М.: БХВ-Петербург, 2017. – 464 с.
  14. Козлов В., Системный анализ, оптимизация и принятие решений. Учебное пособие [Текст] / В. Козлов - М.: Проспект, 2016. – 76 с.
  15. Культин Н.Б., Visual Basic. Освой на примерах (+ CD-ROM) [Текст] / Н.Б. Культин - М.: БХВ-Петербург, 2012. – 288 с.
  16. Кумскова И.А., Базы данных. Учебник. Гриф МО РФ [Текст] / И.А. Кумскова - М.: КноРус, 2016. – 400 с.
  17. Лукин С.Н., Visual Basic: самоучитель для начинающих [Текст] / С.Н. Лукин - М.: Диалог-МИФИ, 2012. – 480 с.
  18. Малкин Г.Е., Учимся моделировать в среде Visual Basic [Текст] / Г.Е. Малкин - М.: Нобель Пресс, 2012. – 210 с.
  19. Мартишин С.А., Проектирование и реализация баз данных в СУБД MySQL с использованием MySQL Workbench. Учебное пособие. Методы и средства проектирования информационных систем и технологий. Инструментальные средства информационных сетей. Гриф УМО вузов России [Текст] / С.А. Мартишин - М.: Форум, 2017. – 160 с.
  20. Назаров С.В., Архитектура и проектирование программных систем [Текст] / С.В. Назаров - М.: Инфра-М, 2016. – 376 с.

Приложение А

Фрагмент программного кода

Private Sub Form_Load()

'MsgBox ""

DE.rsComPrihod.Filter = 0

Set DataGrid1.DataSource = DE

Set DataGrid2.DataSource = DE

DataGrid1.Columns("Suppl_Z_Date").Visible = False

DataGrid1.Columns("Suppl_Z_Note").Visible = False

DataGrid2.Columns("ID документа").Visible = False

DataGrid2.Columns("Tovar_name").Visible = False

End Sub

Private Sub Command1_Click()

If DE.rsComSnabj.BOF Then

MsgBox "Вы уже находитесь в первой записи."

Else

DE.rsComSnabj.MovePrevious

End If

End Sub

Private Sub Command2_Click()

If DE.rsComSnabj.EOF Then

MsgBox "Вы уже находитесь в последней записи."

Else

DE.rsComSnabj.MoveNext

End If

End Sub

Private Sub UpdateData()

DE.rsComSpis.Close

DE.rsComSpis.Open

End Sub

Private Sub UpdateElems()

Set DataGrid1.DataSource = DE

Set DataGrid2.DataSource = DE

Set TextDate.DataSource = DE

Set TextQuan.DataSource = DE

Set TextReason.DataSource = DE

End Sub

Private Sub Command1_Click()

TextDate.Enabled = True

TextQuan.Enabled = True

TextReason.Enabled = True

'TextDate.Enabled = True

DE.rsComSpis.AddNew

Command1.Enabled = False

Command3.Enabled = False

Command2.Enabled = True

Call UpdateElems

End Sub

Private Sub Command2_Click()

'Проверка что в поле число

If Command1.Enabled = False Then

If IsNumeric(TextQuan.Text) Then

If DE.rsComTov!Tovar_quan - TextQuan.Text < 0 Then

MsgBox "Требуемое для списания количество товара отсутствует"

Exit Sub

End If

Else

MsgBox "Введенное количество не является числом"

Exit Sub

End If

If TextDate.Text = "" Or _

TextQuan.Text = "" Or _

TextReason.Text = "" Then

MsgBox "Не все данные введены"

Exit Sub

End If

DE.rsComSpis!spis_tovar = DE.rsComTov!idTovar

DE.rsComSpis.Update

DE.rsComTov!Tovar_quan = DE.rsComTov!Tovar_quan - TextQuan.Text

Command1.Enabled = True

Command3.Enabled = True

UpdateData

UpdateElems

End If

TextDate.Enabled = False

TextQuan.Enabled = False

TextReason.Enabled = False

End Sub

Private Sub Command3_Click()

DE.rsComTov!Tovar_quan = DE.rsComTov!Tovar_quan + DE.rsComSpis!Spis_quan

DE.rsComSpis.Delete

UpdateData

UpdateElems

End Sub

Private Sub Command4_Click()

DE.rsComSpis.CancelUpdate

Command2.Enabled = False

Command1.Enabled = True

Command3.Enabled = True

End Sub

Private Sub Command5_Click()

DE.rsComTov.Filter = "idTovar = " & DE.rsComTov!idTovar

RepSpis.Show

End Sub

Private Sub Command1_Click()

If DE.rsComTov.BOF Then

MsgBox "Вы уже находитесь в первой записи."

Else

DE.rsComTov.MovePrevious

End If

End Sub

Private Sub Command2_Click()

If DE.rsComTov.BOF Then

MsgBox "Вы уже находитесь в первой записи."

Else

DE.rsComTov.MovePrevious

End If

End Sub

Private Sub Form_Load()

DataGrid1.Columns("Tovar_price").Visible = False

DataGrid1.Columns("Количество продукции").Visible = False

DataGrid1.Columns("Tovar_cat").Visible = False

DataGrid1.Columns("Tovar_inch").Visible = False

DataGrid1.Columns("Tovar_manuf").Visible = False

DataGrid1.Columns("Tovar_pack").Visible = False

DataGrid1.Columns("Tovar_vid").Visible = False

'DataGrid1.Columns("Код").Visible = False

End Sub

Private Sub MSHFlexGrid1_Click()

'DE.ComT

End Sub

Private Sub Label1_Click()

End Sub

Private Sub Command1_Click()

If DE.rsComVid1.BOF Then

MsgBox "Вы уже находитесь в первой записи."

Else

DE.rsComVid1.MovePrevious

End If

End Sub

Private Sub Command2_Click()

If DE.rsComVid1.EOF Then

MsgBox "Вы уже находитесь в последней записи."

Else

DE.rsComVid1.MoveNext

End If

End Sub

Private cn As ADODB.Connection

Private rs As ADODB.Recordset

Private rsTovar As ADODB.Recordset

Private Sub Command1_Click()

DE.rsComPZ.Close

DE.rsComPZ.Open

Set TextFlag.DataSource = DE

Set DataGrid1.DataSource = DE

Set DataGrid2.DataSource = DE

DataGrid2.Refresh

End Sub

Private Sub Command2_Click()

DE.rsComPZ.Filter = "idCl_Z = " & DE.rsComPZ!idCl_Z

DataReportZ.Show

End Sub

Private Sub Command3_Click()

DataGrid1.Col = 13

If DataGrid1.Text = "да" Then

MsgBox "Данная заявка уже исполнена. Изменять ее нельзя"

Exit Sub

End If

idRaschod = 0

DataGrid1.Col = 0

If DataGrid1.Text <> "" Then

idCl_Z = DataGrid1.Text

Else

idCl_Z = 0

End If

FmZCont.Show

End Sub

Private Sub Command4_Click()

DataGrid1.Col = 13

If DataGrid1.Text = "да" Then

MsgBox "Данная заявка уже исполнена. Изменять ее нельзя"

Exit Sub

End If

DataGrid1.Col = 0

If DataGrid1.Text <> "" Then

idCl_Z = DataGrid1.Text

Else

idCl_Z = 0

End If

cmd = "Provider = Microsoft.Jet.OLEDB.4.0;" & _

"Data Source = " & App.Path & "\sclad.mdb;Persist Security Info=False"

Set cn = New ADODB.Connection

With cn

.ConnectionString = cmd

.Open

End With

DataGrid2.Col = 0

If DataGrid2.ApproxCount = 0 Then

num = -1

Else

num = DataGrid2.Text

End If

idRaschod = num

SQL = "SELECT * FROM Raschod WHERE idRaschod = " & num

Set rs = New ADODB.Recordset

With rs

.Open SQL, cn, adOpenForwardOnly, adLockReadOnly

End With

If idRaschod = -1 Then num = 0 Else num = rs("Raschod_Tovar")

SQL = "SELECT * FROM Tovar WHERE idTovar = " & num

Set rsTovar = New ADODB.Recordset

With rsTovar

.Open SQL, cn, adOpenForwardOnly, adLockReadOnly

End With

If num <> 0 Then

FmZCont.CBTovar.BoundText = rsTovar("idTovar")

DataGrid2.Col = 3

FmZCont.TextQuan.Text = DataGrid2.Text

DataGrid2.Col = 5

FmZCont.TextCost.Text = DataGrid2.Text

End If

rs.Close

rsTovar.Close

Set rs = Nothing

Set rsTovar = Nothing

cn.Close

Set cn = Nothing

If DataGrid2.ApproxCount <> 0 Then FmZCont.Show

End Sub

Private Sub Command6_Click() 'Отпуск товара по заявке

'DataGrid2.Col = 1

'if DE.rsComPZ.Fields

'If DataGrid2.Text = "" Then

' Exit Sub

'End If

DataGrid1.Col = 0

If DataGrid1.Text <> "" Then

idCl_Z = DataGrid1.Text

Else

idCl_Z = 0

End If

cmd = "Provider = Microsoft.Jet.OLEDB.4.0;" & _

"Data Source = " & App.Path & "\sclad.mdb;Persist Security Info=False"

Set cn = New ADODB.Connection

With cn

.ConnectionString = cmd

.Open

End With

DataGrid1.Col = 13

If idCl_Z <> 0 And (DataGrid1.Text <> "да") Then 'Если имеется необработанная заявка

SQL = "SELECT * FROM Raschod WHERE idCl_Z = " & idCl_Z

Set rs = New ADODB.Recordset

With rs

.Open SQL, cn, adOpenForwardOnly, adLockReadOnly

End With

If rs.BOF Or rs.EOF Then

Exit Sub

End If

rs.MoveFirst

Do While Not rs.EOF 'В цикле проверяем наличие товара на складе

num = rs("Raschod_Tovar") 'Получаем ID Товара

SQL = "SELECT * FROM Tovar WHERE idTovar = " & num

Set rsTovar = New ADODB.Recordset

With rsTovar

.Open SQL, cn, adOpenForwardOnly, adLockReadOnly

End With

If rs("Raschod_quan") > rsTovar("Tovar_quan") Then

MsgBox "Невозможно выполнить заявку. на складе отсутствует требуемое количество товара"

Exit Sub

End If

rsTovar.Close

Set rsTovar = Nothing

rs.MoveNext

Loop

'Если цикл пройден, то значит товар есть

rs.MoveFirst

Do While Not rs.EOF 'В цикле проверяем наличие товара на складе

num = rs("Raschod_Tovar") 'Получаем ID Товара

SQL = "UPDATE Tovar SET Tovar_quan = Tovar_quan - " & rs("Raschod_quan") & " WHERE idTovar = " & num

Set rsTovar = New ADODB.Recordset

With rsTovar

.Open SQL, cn, adOpenForwardOnly, adLockReadOnly

End With

Set rsTovar = Nothing

rs.MoveNext

Loop

rs.Close

Set rs = Nothing

SQL = "UPDATE cl_z set cl_Z_flag = 'да' WHERE idCl_Z = " & idCl_Z

Set rs = New ADODB.Recordset

With rs

.Open SQL, cn, adOpenForwardOnly, adLockReadOnly

End With

Set rs = Nothing

cn.Close

Set cn = Nothing

MsgBox "Расход произведен"

End If

End Sub

Private Sub Command5_Click()

DataGrid1.Col = 13

If DataGrid1.Text = "да" Then

MsgBox "Данная заявка уже исполнена. Изменять ее нельзя"

Exit Sub

End If

cmd = "Provider = Microsoft.Jet.OLEDB.4.0;" & _

"Data Source = " & App.Path & "\sclad.mdb;Persist Security Info=False"

Set cn = New ADODB.Connection

With cn

.ConnectionString = cmd

.Open

End With

DataGrid2.Col = 0

If DataGrid2.ApproxCount = 0 Then

num = -1

Else

num = DataGrid2.Text

End If

idRaschod = num

SQL = "Delete * FROM raschod WHERE idRaschod = " & idRaschod

Set rs = New ADODB.Recordset

With rs

.Open SQL, cn, adOpenDynamic, adLockOptimistic

End With

Set rs = Nothing

cn.Close

Set cn = Nothing

DE.rsComPZ.Close

DE.rsComPZ.Open

DE.rsComPZ.Fields(13).Value.Close

Set DataGrid1.DataSource = DE

Set DataGrid2.DataSource = DE

DataGrid2.Refresh

End Sub

Private Sub Form_Activate()

Set FmZ.DataGrid1.DataSource = DE

Set FmZ.DataGrid2.DataSource = DE

FmZ.DataGrid2.Refresh

End Sub

Private Sub Form_Load()

DataGrid1.Columns("Cl_Z_Men").Visible = False

DataGrid1.Columns("Cl_Z_Client").Visible = False

DataGrid1.Columns("Cl_Z_Tovar").Visible = False

DataGrid1.Columns("Cl_Z_Znum").Visible = False

DataGrid2.Columns("Tovar_name").Visible = False

End Sub

Private cn As ADODB.Connection

Private rs As ADODB.Recordset

Private rsTovar As ADODB.Recordset

Private Sub CBTovar_Click(Area As Integer)

If CBTovar.Text <> "" Then

cmd = "Provider = Microsoft.Jet.OLEDB.4.0;" & _

"Data Source = " & App.Path & "\sclad.mdb;Persist Security Info=False"

'MsgBox cmd

Set cn = New ADODB.Connection

With cn

.ConnectionString = cmd

.Open

End With

SQL = "SELECT * FROM Tovar WHERE idTovar = " & CBTovar.BoundText

Set rs = New ADODB.Recordset

With rs

.Open SQL, cn, adOpenForwardOnly, adLockReadOnly

End With

TextCost.Text = rs("Tovar_price")

End If

End Sub

Private Sub RefreshData()

DE.rsComPZ.Close

DE.rsComPZ.Open

DE.rsComPZ.Fields(13).Value.Close

Set FmZ.DataGrid1.DataSource = DE

Set FmZ.DataGrid2.DataSource = DE

FmZ.DataGrid2.Refresh

End Sub

Private Sub Command1_Click()

'MsgBox idRaschod

If idRaschod = 0 Then ' Добавлние записи

If TextCost.Text = "0" Then

MsgBox "Вы не выбрали товар или цена товара равна нулю"

Exit Sub

End If

If TextQuan.Text = "" Or TextQuan.Text = "0" Then

MsgBox "Количетсво товара не может быть пустым или нулевым значением"

Exit Sub

End If

cmd = "Provider = Microsoft.Jet.OLEDB.4.0;" & _

"Data Source = " & App.Path & "\sclad.mdb;Persist Security Info=False"

'MsgBox cmd

Set cn = New ADODB.Connection

With cn

.ConnectionString = cmd

.Open

End With

'Запрос на вставку данных

SQL = "Insert INTO Raschod (idCl_Z, Raschod_Tovar, Raschod_Price, Raschod_quan) VALUES (" & idCl_Z & ", " & CBTovar.BoundText & "," & TextCost.Text & "," & TextQuan.Text & ")"

'MsgBox SQL

Set rs = New ADODB.Recordset

With rs

.Open SQL, cn, adOpenForwardOnly, adLockReadOnly

End With

' rs.Close

Set rs = Nothing

cn.Close

Set cn = Nothing

End If

If idRaschod <> 0 Then 'Редактирование записи

If TextCost.Text = "0" Then

MsgBox "Вы не выбрали товар или цена товара равна нулю"

Exit Sub

End If

If TextQuan.Text = "" Or TextQuan.Text = "0" Then

MsgBox "Количетсво товара не может быть пустым или нулевым значением"

Exit Sub

End If

cmd = "Provider = Microsoft.Jet.OLEDB.4.0;" & _

"Data Source = " & App.Path & "\sclad.mdb;Persist Security Info=False"

'MsgBox cmd

Set cn = New ADODB.Connection

With cn

.ConnectionString = cmd

.Open

End With

'Запрос на обновление данных

SQL = "UPDATE Raschod SET idCl_Z = " & idCl_Z & ", Raschod_Tovar = " & CBTovar.BoundText & ", Raschod_Price = " & TextCost.Text & ", Raschod_quan = " & TextQuan.Text & " WHERE idRaschod = " & idRaschod

'MsgBox SQL

'MsgBox SQL

Set rs = New ADODB.Recordset

With rs

.Open SQL, cn, adOpenForwardOnly, adLockReadOnly

End With

' rs.Close

Set rs = Nothing

cn.Close

Set cn = Nothing

End If

DE.rsComPZ.Close

DE.rsComPZ.Open

Set FmZ.DataGrid1.DataSource = DE

Set FmZ.DataGrid2.DataSource = DE

FmZ.DataGrid2.Refresh

FmZCont.Hide

Call RefreshData

End Sub

Private Sub Command2_Click()

FmZCont.Hide

End Sub