Автор работы: Пользователь скрыл имя, 18 Сентября 2013 в 05:31, дипломная работа
Целью дипломного проекта является разработка информационной системы для автоматизации процесса работы с поставщиками в Аптека Ригла.
Для достижения указанной цели необходимо решить следующие задачи:
Собрать сведения и проанализировать информацию о деятельности Аптека Ригла, для которого будет разрабатываться программное обеспечение, позволяющее автоматизировать бизнес-процессы, направленные на работу с поставщиками в отделе закупок предприятия;
Выбрать объект исследования и сформулировать требования к разрабатываемой информационной системе на основе полученных данных;
Определить информационные потоки исследуемого объекта и построить их модели;
Выбрать предмет исследования дипломного проекта на основе полученных данных об информационных потоках;
Введение 6
i. Исследование предметной области 8
1.1. Характеристика предприятия и его деятельности 8
1.2. Характеристика комплекса задач, задачи и обоснование необходимости автоматизации 10
1.2.1. Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов 10
1.2.2. Определение места проектируемой задачи в комплексе задач и ее описание 13
1.2.3. Обоснование необходимости использования вычислительной техники для решения задачи 19
1.2.4.Документооборот 19
1.3. Программная и техническая архитектура ис предприятия 26
1.3.1. Основные функции 26
1.3.2. Анализ существующих разработок и выбор стратегии автоматизации делопроизводства взаимоотношении поставщиков лекарственных препаратов с аптекой 27
Выводы 28
2 Специальный раздел 30
2.1 Разработка проекта базы данных аптеки «Ригла» 30
2.1.1 Инфологическая модель 30
2.1.2 Реализация базы данных 36
2.1.3 Даталогическая модель 39
2.1.3 Обоснование выбора среды базы данных 42
2.1.4 Схема данных 49
Выводы 50
3. Автоматизированная информационная система на основе базы данных «Аптека «Ригла» 51
3.1. Триггеры 51
3.2. Хранимые процедуры 56
3.3 Организация интерфейса с пользователем 61
Выводы 68
4. Обоснование экономической эффективности разработки базы данных для автоматизации работы аптеки «Ригла» 69
4.1 Выбор и обоснование методики расчёта экономической эффективности 69
4.2 Расчёт показателей экономической эффективности 73
Выводы 77
5. Безопасность жизнедеятельности 81
5.2. Требования к помещениям для эксплуатации мониторов и пэвм 86
5.3. Требования к освещению помещений и рабочих мест с мониторами и ПЭВМ 88
5.4. Требования к организации и оборудованию рабочих мест с мониторами и ПЭВМ 89
5.5. Требования к клавиатуре 90
5.6. Требования к организации медицинского обслуживания пользователей ВДТ и ПЭВМ 91
Выводы 91
Заключение 92
Список литературы 94
USE [Apteka_Aibolit]
GO
/****** Object: Trigger [dbo].[изменение_количества_в_
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[изменение_количества_в_
on [dbo].[Содержимое_заказа]
for insert
as
declare @Kol int, @Kol_Nal int, @NPr int, @Ch_firmi int,@NZakaza int
select @Kol=Кол_заказа from inserted
select @NPr=NПрепарата from inserted
select @NZakaza=NЗаказа from inserted
select @Ch_firmi=Шифр_фирмы from Заказ_по_фирме
where NЗаказа=@NZakaza
select @Kol_Nal=Количество_штук from Прайс_цен
where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi
if @Kol_Nal>@Kol
begin
update Прайс_цен set Количество_штук=@Kol_Nal-@Kol
where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi
end
3. изменение_количества_в_прайсе_
При удалении из заказа одного из препаратов пересчитываем количество в наличие в «Прайсе цен».
USE [Apteka_Aibolit]
GO
/****** Object: Trigger [dbo].[изменение_количества_в_
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[изменение_количества_в_
on [dbo].[Содержимое_заказа]
for delete
as
declare @Kol int, @Kol_Nal int, @NPr int, @Ch_firmi int,@NZakaza int
select @Kol=Кол_заказа from deleted
select @NPr=NПрепарата from deleted
select @NZakaza=NЗаказа from deleted
select @Ch_firmi=Шифр_фирмы from Заказ_по_фирме
where NЗаказа=@NZakaza
select @Kol_Nal=Количество_штук from Прайс_цен
where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi
begin
update Прайс_цен set Количество_штук=@Kol_Nal+@Kol
where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi
end
Подсчет «к оплате» за один товар. То есть количество заказанного препарата умножаем на его цену из «Прайса цен».
USE [Apteka_Aibolit]
GO
/****** Object: Trigger [dbo].[подсчет_к_оплате_за_
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[подсчет_к_оплате_за_
on [dbo].[Содержимое_заказа]
for insert
as
declare @Stoim int,@Kol int, @NPr int, @Ch_firmi int, @NZakaza int, @K_oplate money
select @Kol=Кол_заказа from inserted
select @NPr=NПрепарата from inserted
select @NZakaza=NЗаказа from inserted
select @Ch_firmi=Шифр_фирмы from Заказ_по_фирме
where NЗаказа=@NZakaza
select @Stoim = цена from Прайс_цен
where NПрепарата=@NPr and Шифр_фирмы=@Ch_firmi
if @Kol!=0
begin
update Содержимое_заказа set К_оплате_за_товар=@Kol*@Stoim
where NПрепарата=@NPr
end
Подсчет «Итого к оплате за заказ». Суммируем все «К оплате» по одному номеру заказа.
USE [Apteka_Aibolit]
GO
/****** Object: Trigger [dbo].[подсчет_итого_к_оплате_
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[подсчет_итого_к_оплате_
on [dbo].[Содержимое_заказа]
for insert
as
declare @NPr int, @Ch_firmi int, @NZakaza int, @K_oplate money, @Itogo_K_oplate money
select @NZakaza=NЗаказа from inserted
select @Ch_firmi=Шифр_фирмы from Заказ_по_фирме
where NЗаказа=@NZakaza
select @K_oplate=К_оплате_за_товар from Содержимое_заказа
where NЗаказа=@NZakaza
update Заказ_по_фирме set Итого_к_оплате_за_заказ=Итого_
where NЗаказа=@NZakaza
При удалении товара из заказа пересчет «Итого к оплате за заказ».
USE [Apteka_Aibolit]
GO
/****** Object: Trigger [dbo].[изменение_итого_к_
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[изменение_итого_к_
on [dbo].[Содержимое_заказа]
for delete
as
declare @Kol int, @NPr int, @Ch_firmi int,@NZakaza int, @itogo_k_oplate_za_zakaz money, @k_oplate_za_tovar money
select @NZakaza=NЗаказа from deleted
select @k_oplate_za_tovar=К_оплате_
select @Ch_firmi=Шифр_фирмы from Заказ_по_фирме
where NЗаказа=@NZakaza
select @itogo_k_oplate_za_zakaz=
where NЗаказа=@NZakaza
update Заказ_по_фирме set Итого_к_оплате_за_заказ=@
where NЗаказа=@NZakaza and Шифр_фирмы=@Ch_firmi
3.2. ХРАНИМЫЕ ПРОЦЕДУРЫ
Предназначена для отображения для определенного препарата фирм, ее поставляющих, цен на этих фирмах, количество в наличии.
USE [Apteka_Aibolit]
GO
/****** Object: StoredProcedure [dbo].[sel] Script Date: 06/16/2009 02:44:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[sel]
@se nchar(150)
AS
SELECT Препараты.*, Прайс_цен.цена, Прайс_цен.Количество_штук, Фирмы.Название_фирмы, Фирмы.Адрес, Фирмы.Телефон, Фирмы.Сайт
FROM Прайс_цен INNER JOIN
Препараты ON Прайс_цен.NПрепарата = Препараты.NПрепарата INNER JOIN
Фирмы ON Прайс_цен.Шифр_фирмы = Фирмы.Шифр_фирмы
WHERE (Препараты.Название_препарата = @se)
Предназначена для отбора из препаратов только БАД.
USE [Apteka_Aibolit]
GO
/****** Object: StoredProcedure [dbo].[БАД] Script Date: 06/16/2009 02:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[БАД]
as
SELECT NПрепарата,
Регистрационный_номер, Название_препарата,
Международное_непатентовонне_
Изображение, Тип_препарата, Примечание, Форма_выпуска, Состав_и_лекарственная_форма, Фармакотерапевтическая_группа, Фармакодинамика,
Фармакокинетика, Производитель
FROM Препараты
WHERE (Препараты.Тип_препарата = 'Бад')
Предназначена для отбора из препаратов только Витаминов.
USE [Apteka_Aibolit]
GO
/****** Object: StoredProcedure [dbo].[Витамин] Script Date: 06/16/2009 02:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[БАД]
as
SELECT NПрепарата,
Регистрационный_номер, Название_препарата,
Международное_непатентовонне_
Изображение, Тип_препарата, Примечание, Форма_выпуска, Состав_и_лекарственная_форма, Фармакотерапевтическая_группа, Фармакодинамика,
Фармакокинетика, Производитель
FROM Препараты
WHERE (Препараты.Тип_препарата = 'Витамин)
Предназначена для отбора из препаратов только косметики.
USE [Apteka_Aibolit]
GO
/****** Object: StoredProcedure [dbo].[Косметика] Script Date: 06/16/2009 02:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[БАД]
as
SELECT NПрепарата,
Регистрационный_номер, Название_препарата,
Международное_непатентовонне_
Изображение, Тип_препарата, Примечание, Форма_выпуска, Состав_и_лекарственная_форма, Фармакотерапевтическая_группа, Фармакодинамика,
Фармакокинетика, Производитель
FROM Препараты
WHERE (Препараты.Тип_препарата = 'Косметика)
Предназначена для отбора из препаратов только БАД.
USE [Apteka_Aibolit]
GO
/****** Object: StoredProcedure [dbo].[БАД] Script Date: 06/16/2009 02:45:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Лекарственные препараты]
as
SELECT NПрепарата,
Регистрационный_номер, Название_препарата,
Международное_непатентовонне_
Изображение, Тип_препарата, Примечание, Форма_выпуска, Состав_и_лекарственная_форма, Фармакотерапевтическая_группа, Фармакодинамика,
Фармакокинетика, Производитель
FROM Препараты
WHERE (Препараты.Тип_препарата = 'Лекаство')
Предназначена для поиска препарата по его названию.
USE [Apteka_Aibolit]
GO
/****** Object: StoredProcedure [dbo].[Поиск_препарата] Script Date: 06/16/2009 02:50:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Поиск_препарата]
@nazv nchar(150)
as
SELECT NПрепарата,
Регистрационный_номер, Название_препарата,
Международное_непатентовонне_
Изображение, Тип_препарата, Примечание, Форма_выпуска, Состав_и_лекарственная_форма, Фармакотерапевтическая_группа, Фармакодинамика,
Фармакокинетика, Производитель
FROM Препараты
WHERE (Препараты.Название_препарата = @nazv)
Предназначена для поиска фирмы по ее названию.
USE [Apteka_Aibolit]
GO
/****** Object: StoredProcedure [dbo].[Поиск_фирмы] Script Date: 06/16/2009 02:54:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[Поиск_фирмы]
@nazv nchar(30)
as
SELECT Фирмы.*
FROM Фирмы
WHERE (Фирмы.Название_фирмы = @nazv)
Предназначена для выбора для определенного препарата показания к применению по определенному заболеванию.
USE [Apteka_Aibolit]
GO
/****** Object: StoredProcedure [dbo].[показания_к_применению_
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[показания_к_применению_
@zabolevanie nchar(50)
AS
SELECT Заболевания.При_зболеваниях, Заболевания.Тип_препарата, Показания_к_применению.*, Препараты.Название_препарата
FROM Заболевания INNER JOIN
Показания_к_применению ON Заболевания.Шифр_заболевания = Показания_к_применению.[При заболеваниях] INNER JOIN
Препараты ON Показания_к_применению.
WHERE (Заболевания.При_зболеваниях = @zabolevanie)
После нажатия на кнопку «Препараты» открывается окно, представленное на рисунке 5. В этом окне можно просматривать каталог товаров и осуществлять по нему поиск.
Рис.5. Окно «Препараты».
При нажатии на ссылку «Показания
к применению» открывается
Рис.6. Показания к применению
При нажатии на ссылку «Фармакологические свойства» появляется окно, представленное на рис.7.:
Рис.7. Фармакологические свойства
При нажатии на ссылку «Состав и лекарственная форма» появляется окно, представленное на рис.8.:
Рис.8. Состав и лекарственная форма
При нажатии на одну из ссылок «Витамины», «Лекарственные препараты», «БАД», «Косметика» появляются такие окна, представленные на рис.9.:
Рис.9. Тип препарата
При нажатии на кнопку поиск по названию, появляется окно, представленное на рис.10:
Рис.10. Поиск по названию
При нажатии на кнопку «Фирмы», появляется окно, представленное на рис. 11:
Рис 11. Фирмы
При нажатии на кнопку поиск по названию, появляется окно, представленное на рис.12:
Рис.12. Поиск по названию
При нажатии из главного окна на кнопку «Прайс цен», появляется окно, представленное на рис.13.:
Рис.13 «Прайс цен»
При нажатии на кнопку «Заказ», появляется окно, представленное на рис.14.:
Рис.14 Заказ
При нажатии на кнопку «Содержимое заказа», появляется окно, представленное на рис.15.:
Рис. 15 «Содержимое заказа».
Выводы
В данной главе был рассмотрен
порядок разработки базы данных средствами
MySQL, а также разработан внешний интерфейс
программного продукта
4.1 Выбор и обоснование методики расчёта экономической эффективности
Возможны следующие варианты
расчета экономической