Разработка информационной подсистемы "InventoryManagement", для управления запасами ООО "Регата–Ставрополь"

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 29.06.2011
Размер файла 6,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

Далее, используя панель элементов, перетаскиваем необходимые элементы:

? TextBox - текстовое поле для записи шапки отчета;

? Tablix - отображает данные в таблице.

Конструктор отчета представлен на рисунке 2.19.

Рисунок 2.19 - Конструктор отчета Report_postuplenie

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

2.4.9 Размер и содержимое каталога «InventoryManagement»

Размер каталога с разработанной информационной подсистемой составляет 4,36 Мбайт (рисунок 2.20).

Рисунок 2.20 - Свойства каталога «InventoryManagement»

Содержимое каталога «InventoryManagement» представлено на рисунке 2.21.

Рисунок 2.21 - Содержимое каталога «InventoryManagement»

Выводы

1. Использование в качестве среды разработки приложения MS Visual Studio 2010 позволяет достичь высочайшей производительности приложений.

2. Программа прошла тестирование в условиях управления запасами ООО «Регата - Ставрополь». В результате тестирования установлено, что она в полном объеме соответствует техническому заданию на проектирование.

3. Размер каталога, в котором находятся файлы разработанного программного продукта, составляет 4,36 Мбайт.

3 ИНФОРМАЦИОННОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

3.1 Общие сведения о программе

Общие сведения о программе (информационной подсистеме «InventoryManagement») представлены в таблице 3.1.

Таблица 3.1 - Общие сведения о разработанном Windows-приложении

Наименование сведений

Содержание сведений

Обозначение программы

InventoryManagement

Наименование программы

Информационная подсистема учета запасов ООО «Регата - Ставрополь»

Программное обеспечение, необходимое для функционирования программы

Операционная система

Windows NT4.0/XP/Vista/7

Язык программирования (среда разработки), на которой написана программа

Язык программирования - Visual C#

Среда разработки - Microsoft Visual studio 2010

3.2 Функциональное назначение программы

Назначение данной программы - автоматизация управления запасами с помощью базы данных в ООО «Регата - Ставрополь». Целью создания программы является сокращение временных затрат на учет материалов и формирование соответствующих отчетов.

Подсистема также выполняет следующие функции:

? формирует отчет о количестве товара, находящегося на складе;

? формирует отчет о товарах, отгруженных со склада;

? формирует отчет о товарах, поступающих на склад;

? формирует отчет о сотрудниках организации;

? формирует отчет о контрагентах, работающих с организацией;

? формирует расходную накладную;

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

? добавляет новый товар в базу данных;

? добавляет новых контрагентов;

? добавляет новых сотрудников;

? списывает отгруженный товар со склада;

? выводит данные по остаткам товара на складе;

? выводит данные по поступившим товарам на склад за определенный период;

? выводит данные по отгруженным товарам со склада.

3.3 Описание логической структуры программы

Логическую структуру программы иллюстрирует диаграмма компонентов (рисунок 3.1).

Рисунок 3.1 Диаграмма компонентов информационной подсистемы «InventoryManagement»

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

Рисунок 3.2 - Логическая структура взаимодействия классов

3.4 Требования к техническому обеспечению

3.4.1 Общие требования

Для нормальной работы информационной подсистемы «InventoryManagement» необходимо наличие на компьютере пользователя операционной системы Microsoft Windows XP или выше. Для установки информационной подсистемы «InventoryManagement» системный блок персонального компьютера должен быть снабжен дисководом для компакт-дисков. Так же к системному блоку должны быть подключены монитор и принтер.

3.4.2 Требования к центральному процессору

Для нормального использования информационной подсистемы «InventoryManagement» достаточно наличия на компьютере пользователя операционной системы Microsoft Windows XP или более поздней версии.

На основании проведенных контрольных прогонов разработанного приложения было установлено, что минимальная тактовая частота процессора для удовлетворительной работы подсистемы «InventoryManagement» составляет 233 МГц. Данная цифра учитывает как затраты процессора на работу самого приложения так и затраты связанные с работой операционной системы.

3.4.3 Требования к оперативному запоминающему устройству

Необходимый размер оперативного запоминающего устройства (ОЗУ) рассчитаем по формуле

, (3.1)

где - минимально необходимый размер ОЗУ, требуемый для работы операционной системы (ОС);

- объем ОЗУ, требуемый самой программой.

Так как предполагается использовать информационную подсистему, работающую под управлением операционной системы Microsoft Windows XP, то для ее нормальной работы требуется 128 Мбайт. Данное требование сформулировано фирмой Microsoft, как минимальное при установке Microsoft Windows XP. Дополнительные программные драйвера устанавливаться не будут. Минимальный объем памяти, необходимый для выполнения функций, разработанной программы не менее 20 Мбайт (определено с помощью диспетчера задач). Подставив значения в формулу (3.1) вычислим минимальный объем оперативной памяти:

Таким образом, воспользовавшись формулой (3.1) получаем

WОЗУ= 128 + 20 = 148 Мбайт.

3.4.4 Требования к наличию сводного места на жестком диске

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

, (3.2)

где - размер пространства, которое занимает инсталляция информационной подсистемы «InvetoryManagement»

- размер временных файлов, создаваемых при работе с программой.

Размер базы данных составляет 4,36 Мбайт. Объем временных файлов, создаваемых программой в течение одного рабочего дня равен 0,35 Мбайт. На основании формулы (3.2) приходим к выводу, что для корректной работы информационной программы необходимо следующее количество свободной памяти жесткого диска:

= 4,36 + 0,35 = 4,71 Мбайт.

Для персонального компьютера клиента с операционной системой Microsoft Windows XP необходимо 1,5 Гбайт свободного места на жестком диске. Обоснование: данное требование сформулировано фирмой Microsoft, как минимальное при установке Microsoft Windows XP.

3.4.5 Требования к монитору

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

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

3.4.6 Требования к принтеру

Так как выводимые разработанной программой отчёты не содержат высокохудожественной графики, то подойдёт принтер с минимальным разрешением в 300dpi. Обоснование: если разрешение печати принтера будет менее 300 точек/дюйм документы, предусмотренные к выводу на принтер, не будут качественно пропечатываться, так как они разрабатывались для вывода на печать лазерным принтером с минимальным разрешением 300 точек/дюйм.

3.5 Установка и вызов программы

Установка программы производится следующим образом:

1. В дисковод для компакт-дисков необходимо поместить CD-ROM с предварительно записанной программой информационной подсистемы «InventoryManagement».

2. Средствами проводника Windows скопировать папку «Regata_control».

3. Скопировать папку на персональный компьютер.

4. Запустить файл InventoryManagement.exe

5. В результате появится главное окно программы (рисунок 3.3)

Рисунок 3.3 Главное окно программы «InventoryManagement»

3.6 Входные данные программы

Разнотипными входными данными программы являются:

1. Наименование товара.

2. Цена покупки товара.

3. Номер накладной.

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

5. Банковские реквизиты банка.

6. Адрес контрагента.

7. Электронный ящик контрагента.

8. Фамилия, Имя, Отчество сотрудника.

9. Должность сотрудника.

10. Возраст сотрудника.

11. Паспортные данные сотрудника.

12. Количество поступающего товара.

13. Выбор ответственного, за прием товара, лица.

14. Дата и время приема товара.

Таким образом, количество разнотипных входных данных равно 14.

3.7 Выходные данные программы

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

? данные справочника «Остатки товара»;

? данные справочника «Сотрудники»;

? данные справочника «Контрагенты»;

? отчет по остаткам товара на складе: выводит данные на печать о количестве имеющегося товара на складе;

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

? отчет о поступивших товарах на склад, за определенный период времени: выводит данные на печать об ассортименте поступившего товара за определенный срок;

? отчет о сотрудниках: выводит данные на печать о работающих на складе сотрудниках;

? отчет о контрагентах: выводит на печать данные о контрагентах работающих с организацией.

Примеры некоторых из перечисленных отчетов были представлены на рисунках 3.4 - 3.7.

Рисунок 3.4 - Остатки товара на складе

Рисунок 3.5 - Поступление товара за указанный период

Рисунок 3.6 - Отгрузка товара за указанный период

3.8 Результаты тестирования программы

информационный подсистема программный обеспечение

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

Выводы

1. Для нормального функционирования программы достаточно наличия: операционной системы Windows XP; персонального компьютера с процессором 233 МГц; 148 Мбайт оперативной памяти; 4,71 Мбайт свободной памяти жесткого диска; любого современного цветного монитора с разрешением 800?600 и любого лазерного принтера с разрешением печати не менее 300 точек/дюйм.

2. В ходе разработки приложения использовались среда Microsoft Visual Studio 2010. Основным языком программирования являлся Visual C#.

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

4. Общее количество разнотипных входных данных программы равно 14.

5. Программа прошла тестирование в условиях управления запасами ООО «Регата - Ставрополь». В результате тестирования установлено, что она в полном объеме удовлетворяет требованиям заказчика. В настоящее время, разработанное приложение, уже внедрено в практику работы указанной организации, и находится в стадии опытной эксплуатации.

4. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ПРОЕКТА

4.1 Краткая характеристика проекта

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

Назначение информационной подсистемы - автоматизация управления запасами.

Цель создания информационной подсистемы - сокращение временных затрат заведующего складом ООО «Регата - Ставрополь» на составление учетно-отчетной документации по складу.

Информационная подсистема «InventoryManagement» выполняет следующие функции:

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

? ведение сведений о контрагентах (наименование организации, адрес, email, банковские реквизиты);

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

? формирование, просмотр и печать полного списка контрагентов;

? формирование, просмотр и печать полного списка сотрудников;

? формирование, просмотр и печать полного списка товаров;

? отслеживания движение товара по складу;

? редактирование реквизитов ООО «Регата - Ставрополь».

При разработке информационной подсистемы использовался язык программирования «С#».

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

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

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

В этом разделе рассмотрены вопросы расчета:

? трудоёмкости выполняемых работ;

? суммарных затрат на создание программного продукта;

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

? чистого дисконтированного дохода за пять лет использования программного продукта;

? внутренней нормы доходности проекта и срока его окупаемости.

4.2 Трудоемкость выполняемых работ

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

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

Трудоемкость разработки программного обеспечения ТПО, чел.- ч., определяется по формуле

ТПО = ТО + ТИ + ТА + ТП + ТОТЛ + ТД, (4.1)

где ТО - затраты труда на описание задачи, чел.-ч.;

ТИ - затраты на исследование предметной области, чел.-ч.;

ТА - затраты на разработку блок-схем, чел.-ч.;

ТП - затраты на программирование, чел.-ч.;

ТОТЛ - затраты на отладку, чел.-ч.;

ТД - затраты на подготовку документации, чел.-ч.

Все составляющие в правой части формулы (4.1) определим через общее число операторов D, ед.:

D = ?•c • (1 + p), (4.2)

где ? - исходное число строчек кода в тексте программы, (? = 620 ед.);

с ? коэффициент сложности задачи;

р - коэффициент коррекции программы, учитывающий новизну проекта.

Коэффициент сложности задачи «с» характеризует относительную сложность программы по отношению к так называемой типовой задаче, реализующей стандартные методы решения, сложность которой принята равной единице (величина коэффициента «с» лежит в пределах от 1,25 до 2). Для рассматриваемого программного продукта, включающего в себя алгоритмы учета, отчетности, поиска - коэффициент сложности задачи примем равным 1,75 (c = 1,75).

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

В результате подстановки численных значений коэффициентов и параметров в формулу (4.2) получим следующее общее число операторов

D = 620?1,75?(1 + 0,1) = 1095,85 ед.

Затраты труда на описание задачи принимаем: ТО = 40 чел.-ч. Работу по описанию задачи выполняет программист с окладом 7000 руб. в месяц и коэффициентом квалификации kК = 1,35 (опыт работы по специальности 6 лет).

Затраты труда на изучение задачи ТИ с учетом уточнения описания и квалификации программиста могут быть определены по формуле:

ТИ = Db/(sukK), (4.3)

где D - общее число операторов, ед.;

b - коэффициент увеличения затрат труда, вследствие недостаточного описания задачи;

su - количество операторов, приходящееся на один чел.-ч., (ед./ чел.-ч.);

kK - коэффициент квалификации работника (определяется в зависимости от стажа работы).

В связи с тем, что решение рассматриваемой задачи потребовало уточнения и доработок, примем коэффициент b = 1,5.

Количество строчек кода в тексте программы, приходящееся на один чел.-ч., примем равным su = 75 ед./ чел.-ч.

Таким образом, на основании формулы (4.3) получим

ТИ = (1095,85 ? 1,5) / (75 ? 1,35) = 16,23 чел.-ч.

Затраты труда на разработку алгоритма решения задачи ТА рассчитываются по формуле:

ТА = D/(sakK), (4.4)

где D - общее число операторов, ед.;

sa - количество операторов алгоритма решения задачи, приходящееся на один чел.-ч., (ед./ чел.-ч.);

kK - коэффициент квалификации работника (определяется в зависимости от стажа работы).

Для расчета по формуле (4.4) примем sa = 20 ед./ чел.-ч.

Подставив численные значения параметров и коэффициентов в формулу (4.4), получим

ТА = 1095,85 /(20 ? 1,35) = 40,59 чел.-ч.

Затраты труда на составление программы по готовой блок-схеме ТП определяется по формуле:

ТП = D/(sakK), (4.5)

где D - общее число операторов, ед.;

sa - количество операторов алгоритма решения задачи, приходящееся на один чел.-ч., (ед./ чел.-ч.);

kK - коэффициент квалификации работника (определяется в зависимости от стажа работы).

Для расчетов по формуле (4.5) примем sa = 20 ед./ чел.-ч.

Подставив численные значения параметров и коэффициентов в формулу (4.5), получим

ТП = 1095,85 /(20 ? 1,35) = 40,59 чел.-ч.

Затраты труда на отладку программы на персональном компьютере ТОТЛ, чел.-ч., рассчитывается по формуле:

ТОТЛ = D / (sотл kK), (4.6)

где D - общее число операторов, ед.;

sотл - количество отлаживаемых операторов программы, приходящееся на один чел.-ч., (ед./ чел.-ч.);

kK - коэффициент квалификации работника (определяется в зависимости от стажа работы).

Для расчетов по формуле (4.6) примем sотл = 4 ед./ чел.-ч.

Подставив численные значения параметров и коэффициентов в формулу (4.6), получим

ТОТЛ = 1095,85 / (4 ? 1,35) = 202,93 чел.-ч.

Затраты труда на подготовку документации по задаче ТД определяются по формуле:

ТД = ТДР + ТДО, (4.7)

где ТДР - затраты труда на подготовку материалов в рукописи, чел.-ч.;

ТДО - затраты труда на редактирование, печать и оформление документации, чел.-ч.

Затраты труда на подготовку материалов в рукописи ТДР, чел.-ч., вычислим по формуле

ТДР = D / (sдр kK), (4.8)

где D - общее число операторов, ед.;

sдр - количество операторов программы в рукописи, приходящееся на один чел.-ч., (ед./ чел.-ч.);

kK - коэффициент квалификации работника (определяется в зависимости от стажа работы).

Для расчетов по формуле (4.8) примем sдр = 15 ед./ чел.-ч.

Подставив численные значения параметров и коэффициентов в формулу (4.8), получим

ТДР = 1095,85 / (15 ? 1,35) = 54,12 чел.-ч.

Затраты труда на редактирование, печать и оформление документации ТДО, чел.-ч., вычислим по формуле

ТДО = 0,75 ? ТДР. (4.9)

Подставив численное значение затраты труда на подготовку материалов в рукописи ТДР, чел.-ч., в формулу (4.9), получим

ТДО = 0,75 ? 54,12 = 40,59 чел.-ч.

Таким образом, подставив численные значение затраты труда на подготовку материалов в рукописи ТДР, чел.-ч., и затраты труда на редактирование, печать и оформление документации ТДО, чел.-ч., в формулу (4.7) получим

ТД = 54,12+ 40,59 = 94,71 чел.-ч.

Подставив все полученные данные в формулу (4.1), получим полную трудоемкость разработки программного обеспечения

ТПО = 40,0 + 16,23 + 40,59 + 40,59 + 202,93 + 94,71 = 435,05 чел.-ч.

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

ТКОР = ТПОkКОР, (4.10)

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

ТКОР - откорректированная трудоемкость разработки программного обеспечения, чел.-ч.

Таблица 4.1 - Изменение трудоемкости в зависимости уровня языка программирования

Уровень языка

программирования

Характеристика языка

программирования

Коэффициент изменения трудоемкости

1

Ассемблер

1

2

Макроассемблер

0,95

3

Алгоритмические языки высокого уровня

0,8 ? 0,9

Использованный для разработки программного обеспечения язык программирования «C#» относится к алгоритмическим языкам высокого уровня, с учетом этого примем kКОР = 0,8.

Окончательно, с учетом корректировки, получим по формуле (4.10) итоговую трудоемкость разработки

ТКОР = 435,05 ? 0,8 = 348,04 чел.-ч.

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

4.3 Расчет себестоимости автоматизированной информационной подсистемы

Себестоимость создания автоматизированной информационной подсистемы З, руб., определяется по следующей формуле

З = ЗО + ЗД + ЗС + ЗЭ + ЗМ + ЗП + ЗАО, (4.11)

где ЗО - основная заработная плата производственного персонала, руб.;

ЗД - дополнительная заработная плата производственного персонала, руб.;

ЗС - отчисления на страховые взносы, руб.;

ЗЭ - затраты на потребляемую электроэнергию, руб.;

ЗМ - расходы на материалы и запасные части, руб.;

ЗП - затраты на техническое обслуживание и текущий ремонт вычислительной техники, руб.;

ЗАО - затраты на амортизацию вычислительной техники, руб.

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

tпф = Nрд?tрд, (4.12)

где Nрд - количество рабочих дней специалиста производственного персонала за месяц;

?tрд - продолжительность рабочего дня специалиста производственного персонала, ч.

Для расчетов по формуле (4.12) примем Nрд = 22 дня, ?tрд = 8 ч. Подставив указанные численные значения параметров Nрд и ?tрд в формулу (4.12) получим, что плановый фонд рабочего времени одного специалиста производственного персонала в месяц составляет

tпф = 22?8 = 176 ч.

Таким образом, часовая тарифная ставка , руб./ч, инженера-программиста первой категории составляет:

Основная заработная плата , руб., производственного персонала определяется по формуле:

. (4.13)

Подставив все числовые значения параметров в формулу (4.13) получим, что основная заработная плата инженера-программиста первой категории составит:

руб.

Дополнительная заработная плата , руб., производственного персонала определяется по формуле:

, (4.14)

где - коэффициент дополнительной заработной платы.

Коэффициент дополнительной заработной платы инженера-программиста первой категории составляет=0,2. Таким образом, дополнительная заработная плата , руб., инженера-программиста первой категории, вычисленная по формуле (4.14), равна:

руб.

Отчисления в Пенсионный фонд Российской Федерации, Фонд социального страхования Российской Федерации и фонды обязательного медицинского страхования Российской Федерации согласно закону № 212-Ф3 от 24.07.2009 , руб., вычислим по формуле:

где - норматива страховых взносов.

В соответствие с законом № 212-Ф3 от 24.07.2009 норматива страховых взносов составляет 34 % (=34 %).

Подставив все численные значения в формулу (4.15) получим, что отчисления на страховые взносы равны:


Таким образом, размер страховых взносов составит 10488,14 руб.

Затраты на потребляемую электроэнергию , руб.:

, (4.16)

где - мощность ЭВМ;

- время работы вычислительного комплекса, ч.

- стоимость 1 кВтч электроэнергии, руб./кВтч.

Мощность ЭВМ, на которой работает инженер-программист первой категории, равна =0,3 кВт.

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

, (4.17)

где - коэффициент, учитывающий затраты времени на профилактические работы на ЭВМ;

- коэффициент коррекции времени работы вычислительного комплекса

Для расчётов по формуле (4.17) примем =1,15 и =0,8. Подставив все численные значения параметров в формулу (4.17) получим:

ч.

Стоимость 1 кВтч электроэнергии составляет = 3,74 руб./кВтч.

Подставив все численные значения параметров в формулу (4.16) получим, что затраты на потребляемую энергию составят:

349,13 руб.

Данные для расчёта затрат на материалы и запасные части занесём в таблицу 4.2.

Таблица 4.2 - Затраты на материалы и покупные изделия

Материал, покупаемое изделие

Количество, ед.

Цена за единицу, руб.

Сумма, руб.

Тонер для картриджа принтера

1

360,00

360,00

USB-Flash накопитель, 8ГБ

1

1000,00

1000,00

Упаковка бумаги, 500 листов

2

115,00

230,00

Лицензионное программное обеспечение

1

18000,00

18000,00

Итого

19590,00

Следовательно, затраты на материалы и запасные части составят:

руб.

Затраты на техническое обслуживание и текущий ремонт вычислительной техники , руб.:

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

- норма отчислений на ремонт, %;

- годовой фонд времени работы вычислительной техники, ч.

Для расчётов по формуле (4.18) примем:

? балансовая стоимость вычислительной техники 35000,00 руб.;

? норма отчислений на ремонт = 4 %;

? годовой фонд времени работы вычислительной техники при 40-часовой рабочей неделе в текущем году = 1986 ч.

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

Затраты на амортизацию вычислительной техники , руб.:

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

- норма отчислений на амортизацию вычислительной техники, %;

- годовой фонд времени работы вычислительной техники, ч.

Для расчётов по формуле (4.19) примем:

? балансовая стоимость вычислительной техники 35000,00 руб.;

? норма отчислений на амортизацию = 20 %;

? годовой фонд времени работы вычислительной техники при 40-часовой рабочей неделе в текущем году = 1986 ч.

Подставив все числовые значения параметров в формулу (4.19) получим, что затраты на амортизацию вычислительной техники составят:

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

Таблица 4.3 - Величины затраты, составляющих себестоимость автоматизированной информационной системы

Статья расхода

Сумма, руб.

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

Дополнительная заработная плата

производственного персонала

Отчисления на страховые взносы

10488,14

Затраты на потребляемую электроэнергию

349,13

Расходы на материалы и запасные части

Затраты на техническое обслуживание и ремонт вычислительной техники

Затраты на амортизацию вычислительной техники

Итого

62590,87

Таким образом, полные затраты на создание программного продукта составляют 62590,87 руб.

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

, (4.20)

где - норма рентабельности, %.

Для расчётов по формуле (4.20) примем =15 %. Подставив численное значение параметров в формулу (4.20) получим:

руб.

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

К = Ц = руб.

4.4 Оценка экономической эффективности внедрения программного продукта

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

, (4.21)

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

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

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

, (4.22)

где - затраты на ручную обработку информации, руб.;

- затраты на автоматизированную обработку информации, руб.;

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

Данный продукт используется заведующим склада ООО «Регата - Ставрополь». Оклад сотрудников составляет 11000 руб., премиальный фонд - 50 % от оклада. Тогда, цена одного часа работы заведующего склада , руб./ч., составит:

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

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

Наименование работы

, ч.

, ч.

Обработка первичных документов

20

4

Получение информации

20

1

Обработка информации

40

1

Составление отчётов

10

2

Итого

90

8

В таблице 4.4 использованы следующие условные обозначения:

? - затраты на ручную обработку информации в месяц, ч.;

? - затраты на автоматизированную обработку информации в месяц, ч.;

Из таблицы 4.4 следует, что общие затраты времени на ручную обработку информации в месяц , ч., составляют = 90 ч., а общие затраты на автоматизированную обработку информации - = 8 ч.

Годовые затраты (затраты за 12 месяцев) заведующего склада ООО «Регата - Ставрополь» при ручной обработке информации вычислим по формуле:

. (4.23)

Тогда годовые затраты заведующего склада ООО «Регата - Ставрополь» при ручной обработке информации (по данным таблицы 4.4 общие затраты времени на ручную обработку информации = 90 ч./месяц) составят:

= 101250 руб.

Годовые затраты (затраты за 12 месяцев) заведующего склада при автоматизированной обработке информации вычислим по формуле:

. (4.24)

При автоматизированной обработке информации (по данным таблицы 4.4 общие затраты времени на ручную обработку информации = 8 ч./месяц)

= 9000 руб.

Следовательно, годовой эффект от внедрения программного продукта, даже без учёта дополнительного экономического эффекта (= 0), на основании формулы (4.22), получится равным:

руб.

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

На основании формулы (4.16), для персонального компьютера заведующего склада за 12 месяцев затраты на электроэнергию при потребляемой мощности компьютера составят (стоимость электроэнергии =3,74 руб./кВт-ч.):

= 107,71 руб.

Балансовая стоимость вычислительной техники (персональных компьютеров специалистов) = 35000 руб. Тогда, на основании формулы (4.18), для персонального компьютера специалиста за 12 месяцев затраты на техническое обслуживание и текущий ремонт составят:

Затраты на амортизацию вычислительной техники по формуле (4.19) составят:

Тогда, эксплуатационные затраты при использовании программного продукта составят:

107,71+67,67+338,37 = 513,75 руб.

Прибыль от использования программного продукта за год рассчитаем по формуле (4.21):

П = Э - З = - 513,75 = 91736,25 руб.

Таким образом, имеем следующий денежный поток:

0 шаг (капиталовложения) ? руб.;

1 шаг ? 91736,25 руб.;

2 шаг ? 91736,25 руб.;

3 шаг ? 91736,25 руб.;

4 шаг ? 91736,258 руб.;

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

где N - расчётный период, год;

- прибыль от использования программного продукта за k-й год его эксплуатации, руб.;

К - капиталовложения при внедрении программного продукта, руб.

Следовательно, ЧДД, руб., при N = 4, т. е. за четыре года использования программного продукта (срок до морального старения рассматриваемой информационной системы) при норме дисконта Е = 20 % в соответствие с формулой (4.25) составит:

= 76446,87+ 63705,72 + 53088,1 + 44240,08

Приходим к выводу, что ЧДД положителен, т. е. проект эффективен.

Внутреннею норму доходности проекта , %, определим по формуле:

где ? максимальное значение внутренней нормы дисконта, %, при которой ЧДД является положительной величиной (ЧДД > 0);

? минимальное значение внутренней нормы дисконта, %, при которой ЧДД является отрицательной величиной (ЧДД < 0);

? ЧДД, руб., вычисляемый по формуле (4.25) при подстановке нормы дисконта E = ;

? ЧДД, руб., вычисляемый по формуле (4.25) при подстановке нормы дисконта E = .

Предполагаем, что лежит в диапазоне 122 … 123 %. При норме дисконта =122 % получаем ЧДД = 118,36 руб. Таким образом, при ЧДД = 122 % ЧДД положителен.

При норме дисконта = 123 % получаем ЧДД =413,09 руб. Таким образом, при ЧДД = 123 % ЧДД отрицателен.

Следовательно, по формуле (4.26) имеем:

Рассчитаем срок окупаемости проекта. Срок окупаемости проекта , год, найдём по формуле:

где N - максимальное количество лет, прошедших с начала эксплуатации программного продукта, в течение которых величина дохода от его использования не превысила величины капиталовложения при внедрении программного продукта;

- величины приведённых (дисконтированных) годовых эффектов за j-й год, руб., прошедший с начала эксплуатации программного продукта, вычисленные по формуле (4.25) при подстановке нормы дисконта Е = 20 %.

Величина приведённого (дисконтированного) годового эффекта за первый год расчётного периода по формуле (4.25) равна:

что больше величины капиталовложений (К = .

Тогда, в формуле (4.27) имеем N = 0 и срок окупаемости составит:

4.5 Основные технико-экономические показатели проекта

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

Таблица 4.5 - Основные технико-экономические показатели проекта

Основные характеристики

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

Проект

Итоговая трудоёмкость разработки

чел-ч.

435,05

Полные затраты на создание программного продукта

руб.

62590,87

Оптовая цена программного продукта

руб.

Годовой экономический эффект от внедрения программного продукта

руб.

Чистый дисконтированный доход

руб.

165501,27

Внутренняя норма доходности

%

123,22

Срок окупаемости проекта

год

0,94

Выводы:

1. Итоговая трудоёмкость разработки программного продукта составила 435,05 чел.-ч.

2. Полные затраты на создание программного продукта составляют 62590,87 руб.

3. Оптовая цена программного продукта - руб.

4. Годовой эффект от внедрения программного продукта составляет руб.

5. Чистый дисконтированный доход - 165501,27 руб.

6. Внутренняя норма доходности - 123,22 %.

7. Срок окупаемости проекта 0,94 года.

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

9. Таким образом, разработка информационной подсистемы управления запасами для ООО «Регата - Ставрополь» является экономически обоснованной и эффективной.

ЗАКЛЮЧЕНИЕ

В данном дипломном проекте были рассмотрены вопросы разработки информационной подсистемы «InventoryManagement» управления запасами для ООО «Регата - Ставрополь», г. Ставрополь.

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

1. Итоговая трудоемкость разработки программного продукта (информационной подсистемы «InventoryManagement») составляет 435,05 чел.-ч.

2. Полные затраты на создание программного продукта составляют 62590,87 руб.;

3. Годовой эффект от внедрения программного продукта составляет 92250,00 руб.;

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

5. Внутренняя норма доходности 123,22 %.

6. Срок окупаемости проекта 0,94 года.

После внедрения программного продукта ежемесячные затраты времени заведующего склада ООО «Регата - Ставрополь», г. Ставрополь на управления запасами, а также подготовку и оформление предусмотренной учетно-отчетной документации сократились с 90 до 8 часов, т. е. примерно в одиннадцать раз.

Таким образом, разработка информационной подсистемы «InventoryManagement» является экономически обоснованной и эффективной.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Калянов, Г. Н. CASE-технологии. Консалтинг при автоматизации бизнес процессов. 2-е изд. перераб. И доп [Текст] /Г. Н. Калянов. - М.: Горячая линия- Телеком, 2000. ? 320 с.

2. Петров, А. И. Информационные системы [Текст]/ А. И. Петров. - М.: Горячая линия-Телеком, 2000. ? 300с.

3. ГОСТ 2.105-95 ЕСКД Общие требования к текстовым документам.

4. Методические указания по определению экономической эффективности новых машин и оборудования/ Горлов С.М., Небесский В.Д. - Ставрополь, 2003.

5. Роберт Э. Уолтерс, Майкл Коулс SQL Server 2008: ускоренный курс для профессионалов. Р. Э. Уолтерс. - М. 2010 г. - 944 с.

6. Ицик Бен-Ган. Microsoft SQL Server 2008: T-SQL Fundamentals, БХВ-Петербург, Русская Редакция, 2009 г. - 432 с.

7. Браст Дж. Системы обработки информации - язык баз данных SQL со средствами поддержания целостности : Пер. с англ. [Текст]/ Дж. Браст - М.: Издательство «Русская редакция», 2007. - 878c.

8. Вендеров А. М. Автоматизированные информационные технологии в экономике [Текст]/ А. М. Вендеров - М.: Финансы и статистика, 2002 . - 415с.

9. Дейт К. Дж. Введение в системы баз данных (седьмое издание): Пер. с англ. [Текст]/ К. Дж. Дейт - М.: Вильямс, 2001. - 1072 с.

10. Зайдман С.А. Реляционные Базы Данных. SQL - стандартный язык реляционных баз данных [Текст]/ С.А. Зайдман - СПб.: Питер, 2002 -180c.

11. Алекс Маки. Введение в .NET 4.0 и Visual Studio 2010 для профессионалов. Вильямс, 2010 г. - 416 с.

12. Тони Нортроп. Разработка защищенных приложений на Visual C# .Net. Русская редакция, 2007г. - 688 с.

13. Конноллн Т., Томас Б., Бегг К. Карелии Базы данных. Проектирование, реализация и сопровождение: Пер. с англ. [Текст]/ Т. Конноллн, Б. Томас, К. Бегг - М.: Издательство «Русская редакция», 2005. - 415c.

14. Корнеев В.В. Базы данных. Интеллектуальная обработка информации [Текст]/ В.В. Корнеев - М.: Нолидж, 2000.-352с.

15. Кузнецов С.Д. Стандарты языка реляционных баз данных SQL [Текст]/С.Д. Кузнецов - М.: «Дашков и К©», 2001.- 234 c.

16. Патрушина С.Н. Компьютерные технологии обработки информации [Текст]/ С.Н. Патрушина - М.: ИКЦ «Март», 2002. - 247с.

17. Пономарева К.В., Кузьмин Л.Г. Информационное обеспечение АСУ [Текст]/ К.В. Пономарева, Л.Г. Кузьмин - М.: Машиностроение, 1998.- 221с.

18. Тельнов Ю.Ф. Интеллектуальные информационные системы в экономике [Текст]/ Ю.Ф. Тельнов - М.: Финансы и статистика, 1999. - 215с.

19. Турбилин В. П. Автоматизированные информационные технологии в экономике [Текст]/ В.П. Турбилин. - М.: Инфа-М, 2000. - 420с.

20. Шаша Д., Бонне Ф. Оптимизация баз данных. Принципы, практика, решение проблем: Пер. с франц. [Текст]/ Д. Шаша, Ф. Бонне - М.: «КУДИЦ-Образ», 2004.-586с.

Приложение А

Листинг файла MainWindow.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace RegataControl

{

public partial class MainWindow : Form

{

public MainWindow()

{

bool status = false;

LoginForm dlg = new LoginForm();

while (!status)

{

dlg.ShowDialog(this);

string u = dlg.getLogin();

string p = dlg.getPassword();

status = AuthManager.Authenticate(u, p);

if(status==false){

MessageBox.Show("Ошибка аутентификации.", "Авторизация", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

InitializeComponent();

if (AuthManager.isAdmin()==false)

{

usersMenuItem.Visible = false;

}

}

private void сотрудникиToolStripMenuItem_Click(object sender, EventArgs e)

{

StaffControlForm dialog = new StaffControlForm();

dialog.ShowDialog(this);

}

private void остаткиToolStripMenuItem_Click(object sender, EventArgs e)

{

Goods dialog = new Goods();

dialog.ShowDialog(this);

}

private void контрагентыToolStripMenuItem_Click(object sender, EventArgs e)

{

Kontragent dialog = new Kontragent();

dialog.ShowDialog(this);

}

private void поступлениеТовараToolStripMenuItem_Click(object sender, EventArgs e)

{

ReturnsGoods dialog = new ReturnsGoods();

dialog.ShowDialog(this);

}

private void отгрузкаТовараToolStripMenuItem_Click(object sender, EventArgs e)

{

ChargeGoods dialog = new ChargeGoods();

dialog.ShowDialog(this);

}

private void остаткиНаСкладеToolStripMenuItem_Click(object sender, EventArgs e)

{

ReainsForm dialog = new ReainsForm();

dialog.ShowDialog(this);

}

private void поступлениеТовараToolStripMenuItem1_Click(object sender, EventArgs e)

{

Form1 F = new Form1();

F.ShowDialog();

}

private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)

{

About_author F = new About_author();

F.ShowDialog();

}

private void контрагентыToolStripMenuItem1_Click(object sender, EventArgs e)

{

report_kontagent dialog = new report_kontagent();

dialog.ShowDialog(this);

}

private void сотрудникиToolStripMenuItem1_Click(object sender, EventArgs e)

{

report_sotrudniki dialog = new report_sotrudniki();

dialog.ShowDialog(this);

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit();

}

private void отгрузкаТовараToolStripMenuItem1_Click(object sender, EventArgs e)

{

report_otgryzka F = new report_otgryzka();

F.ShowDialog();

}

private void пользователяToolStripMenuItem_Click(object sender, EventArgs e)

{

UsersList dialog = new UsersList();

dialog.ShowDialog(this);

}

private void MainWindow_Load(object sender, EventArgs e)

{

}

}

}

Приложение Б

Листинг файла ReturnsGoods.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using Excel = Microsoft.Office.Interop.Excel;

using System.Reflection;

namespace RegataControl

{

public partial class ReturnsGoods : Form

{

public ReturnsGoods()

{

InitializeComponent();

}

private void ReturnsGoods_Load(object sender, EventArgs e)

{

this.sotrydnikiTableAdapter.Fill(this.control_mainDataSet.sotrydniki);

this.tovarTableAdapter.Fill(this.control_mainDataSet.tovar);

this.kontagentTableAdapter.Fill(this.control_mainDataSet.kontagent);

}

private void button5_Click(object sender, EventArgs e)

{

this.Close();

}

private void button4_Click(object sender, EventArgs e)

{

// сохранение приходной накладной

AdapterDataContext db = new AdapterDataContext();

List<GoodStruct> glist = new List<GoodStruct>();

int NOT_DEFINED = -1;

int _nakladNumber= NOT_DEFINED, kontrId = NOT_DEFINED, sotrydId=NOT_DEFINED;

DateTime dt=DateTime.Now;

string kontrName="";

string sotrudName = "";

try

{

_nakladNumber = Int32.Parse(nakladNumber.Text);

// проверка номера накладной

var Choose = from pps in db.postyplenie where pps.nomer_nakladnoi == _nakladNumber select pps;

try

{

int pps_id = Convert.ToInt32(Choose.First().nomer_nakladnoi);

MessageBox.Show("Произошла ошибка. Номер накладной не уникален.", "Приходная накладная", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

catch (Exception ex)

{

//-----

}

DataRowView srow = (DataRowView)kontrComboBox.SelectedItem;

kontrId = (int)srow.Row["id_kontragent"];

kontrName = (string)srow.Row["name"];

dt = dateTimePicker1.Value;

DataRowView sotrRow = (DataRowView)comboBox3.SelectedItem;

sotrydId = (int)sotrRow.Row["id_sotrydnik"];

sotrudName = (string)sotrRow["FIO"];

}

catch

{

MessageBox.Show("Произошла ошибка. Вы ввели неверные данные.", "Приходная накладная", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

int ID_IDX = 0, QUANT_IDX = 2;

foreach (DataGridViewRow row in dataGridView1.Rows)

{

int row_id = (int)row.Cells[ID_IDX].Value;

string quantityString = (string)row.Cells[QUANT_IDX].Value;

int quantity;

try

{

quantity = Int32.Parse(quantityString);

}

catch

{

quantity = 0;

}

if (quantity > 0)

{

// меняем поле количество для каждого товара

var Choose = from st in db.tovar where st.id_tovar == row_id select st;

int q = Convert.ToInt32(Choose.First().kolichestvo);

double cost = Convert.ToDouble(Choose.First().tcena_pokupki);

double realcost = Convert.ToDouble(Choose.First().tcena_prodaji);

string name = Convert.ToString(Choose.First().name);

GoodStruct good = new GoodStruct(name, quantity, cost, realcost);

glist.Add(good);

Choose.First().kolichestvo = q + quantity;

db.SubmitChanges();

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

postyplenie post = new postyplenie

{

data_time = dt,

id_kontragent = kontrId,

id_sotrydnik = sotrydId,

id_tovar = row_id,

nomer_nakladnoi = _nakladNumber,

kolichestvo_tovara = quantity

};

db.postyplenie.InsertOnSubmit(post);

db.SubmitChanges();

}

}

MessageBox.Show("Накладная успешно сохранена", "Приходная накладная", MessageBoxButtons.OK, MessageBoxIcon.Information);

//this.Close();

}

private void button1_Click(object sender, EventArgs e)

{

// добавление контрагента

AddKontragent dialog = new AddKontragent();

dialog.ShowDialog(this);

this.kontagentTableAdapter.Fill(this.control_mainDataSet.kontagent);

this.kontrComboBox.SelectedIndex = this.kontrComboBox.Items.Count - 1;

}

private void button2_Click(object sender, EventArgs e)

{

// добавление товара

AddGood dialog = new AddGood();

dialog.ShowDialog(this);

this.tovarTableAdapter.Fill(this.control_mainDataSet.tovar);

}

private void kontrComboBox_SelectedIndexChanged(object sender, EventArgs e)

{

//

}

}

public class GoodStruct

{

string name;

int quantity;

double cost;

double realCost;

public GoodStruct(string _name, int _quantity, double _cost, double _realCost)

{

name = _name;

quantity = _quantity;

cost = _cost;

realCost = _realCost;

}

public string getName()

{

return name;

}

public int getQuantity()

{

return quantity;

}

public double getCost()

{

return cost;

}

public double getRealCost()

{

return realCost;

}

}

}

Приложение В

Листинг файла ChargeGoods.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using Microsoft.Office.Interop.Excel;

using System.Reflection;

namespace RegataControl

{

public partial class ChargeGoods : Form

{

public ChargeGoods()

{

InitializeComponent();

}

private void button5_Click(object sender, EventArgs e)

{

this.Close();

}

private void button4_Click(object sender, EventArgs e)

{

// сохранение расходной накладной

AdapterDataContext db = new AdapterDataContext();

List<GoodStruct> glist = new List<GoodStruct>();

string kontrName = "";

string sotrudName = "";

int NOT_DEFINED = -1;

int _nakladNumber = NOT_DEFINED, kontrId = NOT_DEFINED, sotrydId = NOT_DEFINED;

DateTime dt = DateTime.Now;

try

{

_nakladNumber = Int32.Parse(nakladNumber.Text);

// проверка номера накладной

var Choose = from pps in db.otgryzka where pps.nomer_nakladnoi == _nakladNumber select pps;

try

{

int pps_id = Convert.ToInt32(Choose.First().nomer_nakladnoi);

MessageBox.Show("Произошла ошибка. Номер накладной не уникален.", "Расходная накладная", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

catch (Exception ex)

{

//-----

}

DataRowView srow = (DataRowView)kontrComboBox.SelectedItem;

kontrId = (int)srow.Row["id_kontragent"];

kontrName = (string)srow.Row["name"];

dt = dateTimePicker1.Value;

DataRowView sotrRow = (DataRowView)comboBox3.SelectedItem;

sotrydId = (int)sotrRow.Row["id_sotrydnik"];

sotrudName = (string)sotrRow["FIO"];

}

catch

{

MessageBox.Show("Произошла ошибка. Вы ввели неверные данные.", "Расходная накладная", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

int ID_IDX = 0, QUANT_IDX = 2;

foreach (DataGridViewRow row in dataGridView1.Rows)

{

int row_id = (int)row.Cells[ID_IDX].Value;

string quantityString = (string)row.Cells[QUANT_IDX].Value;

int quantity;

try

{

quantity = Int32.Parse(quantityString);

}

catch

{

quantity = 0;

}

if (quantity > 0)

{

// меняем поле количечество для каждого товара

var Choose = from st in db.tovar where st.id_tovar == row_id select st;

int q = Convert.ToInt32(Choose.First().kolichestvo);

double cost = Convert.ToDouble(Choose.First().tcena_pokupki);

double realcost = Convert.ToDouble(Choose.First().tcena_prodaji);

string name = Convert.ToString(Choose.First().name);

GoodStruct good = new GoodStruct(name, quantity, cost, realcost);

glist.Add(good);

Choose.First().kolichestvo = q - quantity;

db.SubmitChanges();

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

otgryzka post = new otgryzka

{

data_time = dt,

id_kontragent = kontrId,

id_sotrydnik = sotrydId,

id_tovar = row_id,

nomer_nakladnoi = _nakladNumber,

kolichestvo_tovara = quantity

};

db.otgryzka.InsertOnSubmit(post);

db.SubmitChanges();

}

}

if (isExcelReportNeed.Checked)

{

int var = Convert.ToInt32(nakladNumber.Text);

var f = new rasxod_naklad(var);

f.Show();

}

MessageBox.Show("Накладная успешно сохранена", "Расходная накладная", MessageBoxButtons.OK, MessageBoxIcon.Information);

//this.Close();

}

private void ChargeGoods_Load(object sender, EventArgs e)

{

this.sotrydnikiTableAdapter.Fill(this.control_mainDataSet.sotrydniki);

this.tovarTableAdapter.Fill(this.control_mainDataSet.tovar);

this.kontagentTableAdapter.Fill(this.control_mainDataSet.kontagent);

this.otgryzkaTableAdapter.Fill(this.control_mainDataSet.otgryzka);

}

private void button1_Click(object sender, EventArgs e)

{

// добавление контрагента

AddKontragent dialog = new AddKontragent();

dialog.ShowDialog(this);

this.kontagentTableAdapter.Fill(this.control_mainDataSet.kontagent);

this.kontrComboBox.SelectedIndex = this.kontrComboBox.Items.Count - 1;

}

private void button2_Click(object sender, EventArgs e)

{

// добавление товара

AddGood dialog = new AddGood();

dialog.ShowDialog(this);

this.tovarTableAdapter.Fill(this.control_mainDataSet.tovar);

}

}

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.