Разработка сайта туристической компании

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,82 Мб
  • Опубликовано:
    2013-07-16
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка сайта туристической компании















Дипломный проект

Разработка сайта туристической компании


Введение

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

Создание сайта в Интернете обеспечивает новые возможности по расширению, информационной поддержке или рекламе бизнеса.

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

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

Качественный сайт является основным информационным ресурсом всей компании. При помощи сайта можно:

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

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

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

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

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

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

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

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

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

-       возможность дальнейших модификаций и дополнений системы;

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

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

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

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


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

 

.1 Технико-экономическая характеристика предметной области

 

Характеристика предприятия

ООО «Самараинтур Сервис Груп» - туристическая компания, созданная в 1992 году. Основными сферами деятельности компании являются:

1)  Международный туризм:

·        на базе чартерных программ с вылетом из Самары по направлениям Болгарии, Греции, ОАЭ;

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

·        на регулярных рейсах а/к Чешский авиалинии, а/к Lufthansa, а/к KДавиа свои собственные программы с вылетом из Самары.

В центральном офисе компании осуществляется бронирование и выписка авиа и ж/д. билетов практически на все ведущие а/к мира и РЖД.

Взаимодействие с представительствами а/к, консульскими службами посольств, крупными Московскими операторами осуществляется через Московское представительство ООО «Самараинтур».

2)  Российский туризм: Российский отдел компании активно занимается формированием и реализацией туристического продукта на территории Российской Федерации. Основными направлениями являются:

·        Пляжный отдых на Черноморском побережье, калининградская область, Среднее Поволжье.

·        Экскурсионные программы в Москве, Санкт-Петербурге, золотом Кольце, городах Средней волги.

·        Лечение в санаториях Черноморского побережья, Северного Кавказа, Самарской, Ульяновской, Пензенской областях, республиках Чувашии, Татарстана, Башкирии и других.

·        Активный отдых. Лидеры в продаже горнолыжных туров на территории Российской Федерации.

·        Реализация путевок практически на все круизы Волжско-Камского водного бассейна.

3)  Прием в Самарской области: Особое место в деятельности компании занимает прием туристов на территории Самарской области. ООО «Самараинтур» аккредитована в МИД России. Реализация пакетов на приеме в самарской области ведется как для группы на определенные даты заездов, так и разрабатываются для индивидуальных туристов под конкретные заявки, осуществляется бронирование отелей.

Функциональной характеристики объекта управления

Управляющая компания ООО «Самараинтур Сервис Групп» включает 9 подразделений.

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

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

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

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

ООО «Сувенирная лавка» - является магазином сувенирной продукции города Самара.

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

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

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

ООО «Жигули-тур» - подразделение, направленное на организацию приема туристов на территории самарской области (с. Ширяево, г. Жигулевск, экскурсии в Самарскую Луку).

Краткая характеристика подразделения

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

Положение о техническом отделе

1. Общие положения

.1. Настоящее положение определяет назначение, цели, задачи, функции, права, ответственность и основы деятельности технического отдела (далее - отдел).

.2. Отдел осуществляет техническое обеспечение производственной деятельности организации.

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

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

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

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

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

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

. Основные задачи отдела

.1. Техническое обеспечение производственной деятельности организации.

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

Установка, настройка серверов предприятия и рабочих станций пользователей.

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

Монтаж и демонтаж сетевого оборудования (прокладка кабелей, установка маршрутизаторов, коммутаторов, розеток и пр.).

Установка и настройка программного обеспечения.

Администрирование серверного оборудования.

Проектирование и поддержка (создание, администрирование) веб-ресурсов предприятия.

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

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

.4. Совершенствование и внедрение новых методов организации работы, в том числе на основе использования современных информационных технологий.

.5. Участие в пределах своей компетенции в подготовке и исполнении управленческих решений руководства организации.

.6. Повышение уровня технической грамотности работников организации.

.7. Решение иных задач в соответствии с целями организации.

. Основные функции отдела

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

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

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

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

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

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

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

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

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

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

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

. Права и ответственность

.1. Отдел имеет право:

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

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

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

вносить предложения по совершенствованию форм и методов работы отдела и организации в целом;

участвовать в подборе и расстановке кадров по своему профилю деятельности;

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

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

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

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

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

) «LocalOff» - система электронного документооборота предприятия.

) «1С: Предприятие». Система программ «1С: Предприятие» предназначена для решения широкого спектра задач автоматизации учета и управления, стоящих перед динамично развивающимися современными предприятиями.

«1С: Предприятие» представляет собой систему прикладных решений, построенных по единым принципам и на единой технологической платформе.

Включает в себя 3 компоненты:

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

2.      «1С: Торговля и Склад» предназначена для учета любых видов торговых операций. Программа способна выполнять все функции учета - от ведения справочников и ввода первичных документов до получения различных ведомостей и аналитических отчетов.

3.      «1С: Зарплата и Кадры» предназначена для автоматизации расчета заработной платы и ведения кадрового учета на предприятиях различных типов финансирования и форм собственности.

4) 1С-Рарус: Общепит 8. Программный продукт «1С-Рарус: Общепит, ред. 8, Проф» предназначен для автоматизации бухгалтерского и налогового учета деятельности ресторанов, кафе, подразделений общественного питания гостиничных комплексов, производственных и кондитерских цехов и других предприятий общественного питания.

5) Microsoft Visual Studio 2005 Standard Edition. Среда разработки Microsoft Visual Studio - это набор инструментов и средств, предназначенных для помощи разработчикам программ любого уровня квалификации в решении сложных задач и создания новаторских решений. Роль Visual Studio заключается в том, чтобы улучшить процесс разработки и упростить разработку высокоэффективных программ.

1.2 Функциональная сущность комплекса экономических информационных задач

Общие сведения о задачах

1.      Создание средств администрирования БД;

2.      Разработка пользовательского интерфейса;

.        Разработка средств ввода и редактирования информации;

.        Предоставление перечня регионов и стран обслуживаемых «Самараинтур»;

.        Классификация туров по типам и по странам;

.        Разработка информационных рекламных разделов;

.        Разработка справочника наличия и стоимости путевок;

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

.        Расчет скидок, предоставляемых постоянным клиентам;

.        Организация процесса получения и обработки заявки;

.        Разработка системы отзывов «Впечатления туристов»;

.        Формирование статистических данных.

1.3 Обоснование проектных решений

 

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

Для разработки информационной системы была использована технология asp.net. Языком разработки является язык С# - один из базовых языков Visual Studio. Средой разработки является программный комплекс Microsoft Visual Studio 2005 Professional. Используемая СУБД - Microsoft SQL-Server 2005.

Выбор среды разработки Microsoft Visual Studio 2005 Standard Edition. В качестве среды разработки была выбрана Microsoft Visual Studio 2005.

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

Visual Studio 2005 Standard Edition представляет собой профессиональный инструмент начального уровня. В нем сочетается простота версий Express и мощные средства разработки, необходимые для создания клиентских приложений, работающих с данными, многоуровневых клиент-серверных приложений с использованием веб-служб, и разнообразных веб-приложений.

Visual Studio Standard Edition обеспечивает разработку бизнес-приложений, работающих с данными, хорошо приспособлен для разработки веб-приложений и при этом обладает упрощенным интерфейсом. Итак, Visual Studio 2005 Standard Edition позволяет:

·      создавать бизнес-приложения с использованием языков Visual Basic, С#, C++ и J#;

·              создавать Windows- и веб-приложения, приложения для портативных устройств;

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

·              использовать возможности по генерированию отчетов SQL Reporting Services для оформления выводимых данных;

·              расширять возможности Visual Studio с помощью инструментов третьих фирм;

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

Выбор СУБД. В качестве системы управления базами данных дипломного проекта была выбрана СУБД Microsoft SQL Server 2005. Во-первых, MSQL Server уже входит в программный комплекс Visual Studio. Во-вторых, эта СУБД Сегодня организации сталкиваются с многочисленными проблемами по обработке информации; например, с потребностью в более быстрых и основанных на управлении данными решениях, с потребностью увеличить производительность и мобильность штата разработчиков, а также с настойчивыми требованиями уменьшить общий бюджет отдела информационных технологий, увеличивая инфраструктуру в соответствии со строго возрастающими требованиями.SQL Server - система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов - Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с небольшими и средними по размеру базами данных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка.

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

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

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

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

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

Платформа Данных SQL Server. SQL Server является всеобъемлющим, интегрированным сквозным решением, которое наделяет пользователей вашей организации безопасной, надежной, и продуктивной платформой для обработки промышленной информации и приложений, касающихся интеллектуальных ресурсов предприятия. SQL Server 2005 предоставляет мощные, знакомые инструменты для профессионалов информационных технологий так же, как и для работников информационной сферы, уменьшая сложность создания, развёртывания, управления и использования данных предприятия и аналитических приложений на платформах от мобильных устройств до информационных систем предприятия. Благодаря исчерпывающему набору функций, взаимодействию с существующими системами и автоматизации типовых задач, SQL Server 2005 предоставляет полное решение в области хранения данных для предприятий всех масштабов.

Платформа данных SQL Server включает следующие инструменты:

·              Реляционная база данных: безопасное, надёжное, масштабируемое, высокодоступное ядро с улучшенной производительностью и поддержкой структурированных и неструктурированных (XML) данных.

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

·              Notification Services: развитые возможности уведомлений для разработки и внедрения масштабируемых приложений, способных доставлять персонализированные, своевременные обновления информации множеству соединённых и мобильных устройств.

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

·              Analysis Services: аналитическая обработка в реальном времени (OLAP) для быстрого, сложного анализа больших и смешанных наборов данных, использующая многомерное хранение.

·              Reporting Services: исчерпывающее решение для создания, управления и доставки как традиционных бумажных отчётов, так и интерактивных, основанных на технологии WWW отчётов.

·              Инструменты управления: SQL Server включает средства управления для развитого управления и настройки баз данных, также как и тесную интеграцию с такими инструментами, как Microsoft Operations Manager (MOM) и Microsoft Systems Management Server (SMS). Стандартные протоколы доступа к данным существенно уменьшают время, необходимое для интеграции данных SQL Server с существующими системами. В дополнение, поддержка Web служб встроена для обеспечения взаимодействия с другими приложениями и платформами.

·              Инструменты разработки: SQL Server предлагает интегрированные инструменты разработки для ядра базы данных, извлечения, трансформации и загрузки данных, извлечения информации, OLAP и отчётности, которые тесно интегрированы с Microsoft Visual Studio® для предоставления сквозных возможностей разработки приложений. Каждая главная подсистема SQL Server поставляется со своей собственной объектной моделью и набором API для расширения системы данных в любом направлении, которое уникально для вашего бизнеса.

Платформа данных SQL Server 2005 предоставляет организациям всех размеров следующие преимущества:

·              Использовать активы данных: в дополнение к поставке безопасной, надёжной базы данных для отраслей промышленности и аналитических приложений, SQL Server 2005 позволяет заказчикам получать больше выгоды от их данных включением встроенных функций, таких как отчётность, анализ и извлечение информации.

·              Увеличить продуктивность: благодаря всеобъемлющим возможностям интеллектуальных ресурсов предприятия и интеграции со знакомыми инструментами, такими, как Microsoft Office System, SQL Server 2005 предоставляет работникам информационной сферы вашего предприятия важную, своевременную информацию, приспособленную для их конкретных нужд. Цель - сделать BI доступными для всех пользователей организации и, конечном счёте, позволить пользователям на всех уровнях организации принимать лучшие бизнес решения, основанные на одном из самых ценных активов - их данных.

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

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

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

·              Управляемость

·              Доступность

·              Масштабируемость

·              Безопасность

Функциональность. Microsoft SQL Server в качестве языка запросов использует версию SQL, получившую название Transact-SQL (сокращённо T-SQL), являющуюся реализацией SQL-92 (стандарт ISO для SQL) с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением). Microsoft SQL Server и Sybase ASE для взаимодействия с сетью используют протокол уровня приложения под названием Tabular Data Stream (TDS, протокол передачи табличных данных). Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных Microsoft SQL Server и Sybase.SQL Server также поддерживает Open Database Connectivity (ODBC) - интерфейс взаимодействия приложений с СУБД. Версия SQL Server 2005 обеспечивает возможность подключения пользователей через веб-сервисы, использующие протокол SOAP. Это позволяет клиентским программам, не предназначенным для Windows, кроссплатформенно соединяться с SQL Server. Microsoft также выпустила сертифицированный драйвер JDBC, позволяющий приложениям под управлением Java (таким как BEA и IBM WebSphere) соединяться с Microsoft SQL Server 2000 и 2005.Server поддерживает зеркалирование и кластеризацию баз данных. Кластер сервера SQL - это совокупность одинаково конфигурированных серверов; такая схема помогает распределить рабочую нагрузку между несколькими серверами. Все сервера имеют одно виртуальное имя, и данные распределяются по IP-адресам машин кластера в течение рабочего цикла. Также в случае отказа или сбоя на одном из серверов кластера доступен автоматический перенос нагрузки на другой сервер.Server поддерживает избыточное дублирование данных по трем сценариям:

Снимок: Производится «снимок» базы данных, который сервер отправляет получателям.

История изменений: Все изменения базы данных непрерывно передаются пользователям.

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

В SQL Server 2005 встроена поддержка.NET Framework. Благодаря этому, хранимые процедуры БД могут быть написаны на любом языке платформы.NET, используя полный набор библиотек, доступных для.NET Framework, включая Common Type System (система обращения с типами данных в Microsoft.NET Framework). Однако, в отличие от других процессов.NET Framework, будучи базисной системой для SQL Server 2005, выделяет дополнительную память и выстраивает средства управления SQL Server вместо того, чтобы использовать встроенные средства Windows. Это повышает производительность в сравнении с общими алгоритмами Windows, так как алгоритмы распределения ресурсов специально настроены для использования в структурах SQL Server.

Разработка приложений. Microsoft и другие компании производят большое число программных средств разработки, позволяющих разрабатывать бизнес-приложения с использованием баз данных Microsoft SQL Server. Microsoft SQL Server 2005 включает в себя также Common Language Runtime (CLR) Microsoft.NET, позволяющий реализовывать хранимые процедуры и различные функции приложениям, разработанным на языках платформы.NET (например, VB.NET или C#). Предыдущие версии средств разработки Microsoft использовали только API для получения функционального доступа к Microsoft SQL Server.

Интеграция с Visual Studio. SQL Server 2005 и Visual Studio 2005 вместе предоставляют более глубокие уровни интеграции между базой данных и средой разработки приложений, чем это было возможно ранее. Разработчики теперь могут создавать управляемые хранимые процедуры, функции, пользовательские типы и пользовательские агрегаты непосредственно из среды Visual Studio. Они также могут развёртывать эти новые объекты базы данных непосредственно из Visual Studio без переключения в другие инструменты. Visual Studio 2005 непосредственно поддерживает все новые типы данных SQL Server, такие как встроенный XML. Также существует возможность добавить все управляемые объекты базы данных в ту же систему контроля версий, которая используется для проектов Visual Studio, что позволяет ещё теснее интегрировать и сделать более безопасным процесс разработки.

Отладка между уровнями и между языками. Вместе SQL Server 2005 и Visual Studio 2005 предоставляют ещё более тесную интеграцию в области отладки приложений. Это сочетание позволяет без проблем отлаживать как управляемый, так и Transact-SQL код, используя тот же отладочный интерфейс Visual Studio и это позволяет отлаживать Transact-SQL из управляемого кода и наоборот, невзирая на расположение кода, находится ли он на машине, где происходит разработка или хранится в базе данных SQL Server.

Доступ к данным и Web службы. В SQL Server 2005 можно разрабатывать Web службы XML в уровне базы данных, используя SQL Server в качестве слушателя HTTP. Это даёт новый способ доступа к данным приложениям, которые сосредоточены вокруг Web служб. В SQL Server 2005 можно использовать HTTP для прямого доступа к SQL Server, без применения слушателя промежуточного уровня, такого как Microsoft Internet Information Services (IIS). SQL Server предоставляет интерфейс Web службы для выполнения SQL выражений и вызова функций и процедур. Результаты запросов возвращаются в XML формате и здесь можно воспользоваться преимуществами инфраструктуры Web служб Visual Studio.

SQL Server Express. Более чем когда-либо разработчики используют возможности реляционных баз данных для предоставления удобства конечным пользователям. Защита и управление информацией в этих приложениях чрезвычайно важны. Microsoft SQL Server Express является бесплатно распространяемой версией SQL Server, развитием системы MSDE, которая позволяет разработчикам создавать мощные и надёжные приложения при помощи бесплатной, лёгкой в использовании и мощной базы данных. Слишком часто системы баз данных излишне сложны для построения простых приложений. Microsoft Visual Studio 2005 и SQL Server Express уменьшают эту сложность при помощи простой но мощной среды разработки для создания приложений, работающих с данными. Разработчики могут проектировать схемы, добавлять данные, и опрашивать локальные базы данных внутри среды Visual Studio 2005. Данная версия имеет некоторые технические ограничения. Такие ограничения делают её непригодной для развертывания больших баз данных, но она вполне годится для ведения программных комплексов в масштабах небольшой компании. Содержит полноценную поддержку новых типов данных, в том числе XML-спецификации. Фактически, это полноценный MS SQL Server, включая все его компоненты программирования, поддержку национальных алфавитов и Unicode. Поэтому используется в приложениях, при проектировании или для самостоятельного изучения. Нет никаких препятствий для дальнейшего развёртывания накопленной базы данных на MS SQL Server неэкспрессной версии.

Если потребуются более развитые возможности, SQL Server Express можно без проблем обновить до более сложных версий SQL Server.

Ограничения

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

Гб адресуемой памяти

Гб максимальный размер базы (10 Гб для версии SQL Server 2008 R2)

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

·              Использование активов данных: в дополнение к поставке безопасной, надёжной базы данных для промышленных и аналитических приложений, SQL Server 2005 позволяет клиентам извлечь больше выгоды из их данных через использование встроенной функциональности, такой как отчёты, анализ и Data Mining.

·              Увеличение производительности: через всеобъемлющие возможности интеллектуальных ресурсов предприятия и интеграцию со знакомыми инструментами, такими как Office, SQL Server 2005 предоставляет работникам информационной сферы вашей организации важнейшую, своевременную бизнес информацию, которая соответствует их специфическим потребностям. Целью является расширение BI до всех сотрудников организации и, в конечном счёте, принятие лучших бизнес решений сотрудниками всех уровней организации, основанных на их самом ценном активе - их данных.

·              Уменьшение сложности Информационных Технологий: SQL Server 2005 упрощает разработку, развёртывание и управление промышленными и аналитическими приложениями посредством гибкой среды разработки для программистов и интегрированных, автоматизированных средств управления для администраторов баз данных.

·              Снижение Общей Стоимости Владения (TCO): Интегрированный подход и концентрация на простоте использования имеет самые низкие в промышленности издержки на реализацию и поддержку для быстрого возврата инвестиций в базы данных.

Обоснование выбора языка

В качестве языка программирования был выбран C#.

C# (произносится си-шарп) - язык программирования, сочетающий объектно-ориентированные и контекстно-ориентированные концепции. Разработан в 1998-2001 годах группой инженеров под руководством Андерсa Хейлсбергa в компании Microsoft.

C# (Си Шарп) создан, чтобы стать основным языком программирования для написания приложений.NET в корпоративной среде, ориентированной на современные технологии Интернета. Язык программирования Си Шарп (C#.NET) происходит от С и С++ но, по сравнению с ними, он современнее, проще, и полностью объектно-ориентированный. Избыточная сложность С++ была устранена в С#, чтобы сделать его более простым в использовании и менее подверженным ошибкам. И в будущем, среди языков программирования, он будет играть доминирующую роль.

1.4 Технические требования к информационной системе

Конфигурация сервера:

Процессор: 8xCPU Intel Xeon 2.5 ГГц;

HDD: RAID1 320 Gb;

Оперативная память: 16 Gb

Конфигурация клиентских компьютеров:

CPU: Pentium 2,1 ГГц и выше; AMD AthlonXP 2000+;: 512 Мб и более;: от 10Гб (требуется для нормальной работы ОС, поскольку все рабочие данные хранятся на сервере);

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

Программное обеспечение сервера:

ОС Microsoft Windows Server 2008 x64;

Microsoft SQL Server 2005 (возможна версия Express Edition)/2008 (возможна версия Express Edition).

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

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

2.1    Информационное обеспечение комплекса задач

 

Инфологическая модель и ее описание

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

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

На сегодняшний день Российский рынок программного обеспечения располагает следующими наиболее развитыми CASE-средствами:

·              Rational Rose

·              BPwin + ERwin;

·              Vantage Team Builder (Westmount I-CASE);

·              Silverrun; Rose - программный пакет для визуального объектно-ориентированного моделирования систем на основе классов и их взаимодействия.

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

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

Главное отличие Rational Rose от других средств в том, что он полезен не только проектировщику систем, но и разработчику программного кода.

Преимущества применения Rational Rose:

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

§  Увеличение продуктивности работы программистов. Меньше ручного кодирования - меньше ошибок, меньше ошибок - меньше отладки, меньше отладки - больше продуктивности;

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

§  Способность вести большие проекты и группы проектов;

§  Возможность повторного использования уже созданного ПО за счет упора на разбор их архитектуры и компонентов;

Язык UML служит универсальным «мостиком» между разработчиками из разных отделов. Язык UML кардинально отличается от таких языков программирования как, например, Visual C++ или Visual Basic. Он предназначен для описания моделей, причем для работы с этим языком используется специальные редакторы диаграмм, такие как Rational Rose. Этот язык слишком сложен, чтобы оперировать им вручную.

Пользователь пакета Rational Rose полностью огражден от ручного ведения кода, и Rational Rose сам создает и сохраняет по визуальным диаграммам все, что необходимо.не зависит от объектно-ориентированных языков программирования и может поддерживать любой из них. Этот язык также не зависит от используемой методологии разработки проекта, и созданные на UML диаграммы выразительны и понятны для всех разработчиков, вовлеченных в проект, причем, что немаловажно, не только в момент разработки, но и много месяцев спустя.

Процесс разработки автоматизированной системы в Rational Rose.

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

Действующие лица (рис. 2.1.)

ü  Klient (Клиент)

ü  Menedjer (Менеджер)

ü  Product menedjer (Менеджер по туристическому продукту)

ü  Programmist (Программист)

ü  Direktor (Директор)

ü  Buhgalter (Бухгалтер)

Варианты использования

ü  Sostavl_turov, formirov_ceni (заказ товара клиентом)

ü  Verstka_dannih_v_internet-proect (верстка данных в Интернет-проект)

ü  Zanesenie_dannih_v_BD (занесение данных в Базу данных)

ü  Obrabotka_zayavki, podtverjd_zakaza (обработка заявки, подтверждение заказа)

ü  Otpravka_zayavki_na_e-mail (отправка заявки на почту)

ü  Zakluch_dogovora (заключение договора)

ü  Vistavl_scheta (выставление счета)

ü  Sostavl_fin_otchetn (составление финансовой отчетности)

ü  Sostavl_statistiki (составление статистики)

Рис. 2.1. Диаграмма вариантов использования

 

При формировании тура и оформлении заявки от клиента производятся следующие действия:

1.      Продукт менеджер составляет туристической продукт: формирует тур, туристические маршруты, основные и дополнительные цены к нему;

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

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

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

.        У клиента есть две возможности получить тур:

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

·        после того как тур забронирован, клиент может приехать в офис компании, расплатиться на месте и получить тур на руки.

Диаграмма классов. Это основная диаграмма для создания кода приложения. При помощи ее создается внутренняя структура системы, описывается наследование и взаимное положение логическое классов друг относительно друга. Здесь описывается представление системы. Именно логическое, так как классы - это лишь заготовки, на основе которых затем будут определены физические объекты.

Диаграмма классов используется не только для создания логического представления системы, Rational Rose позволяет на основе диаграммы классов создавать исходный код приложения. А так как описание классов создается на языке UML, то по диаграммам, созданным в едином стиле, возможна генерация исходного кода на любом языке программирования, который поддерживается генератором кода Rational Rose.

Инструмент Class позволяет создать новый класс в диаграмме и модели. Класс - это установки структуры и шаблона поведения для некоторого множества реальных объектов, которые в дальнейшем будут определены в программе на основе данного шаблона. Класс - это некоторая абстракция реального мира. Когда эта абстракция принимает конкретное воплощение, она называется объектом. Класс в UML нотации изображается как прямоугольник, разделенный на три части. В верхней части записывается название класса, в середине - атрибуты, в нижней части - операции.

Рис. 2.2. Диаграмма классов

Информационная модель

Структура базы данных системы представлена на рисунке 2.3.


Рис. 2.3. Структура базы данных системы

 

Характеристика нормативно-справочной и оперативной информации

В настоящем дипломном проекте используется 9 таблиц формата Microsoft SQL Server 2005. Рассмотрим каждую из таблиц в отдельности (таблица 2.1. - 2.21.):

1)      Структура таблицы Country (справочник стран) представлена в таблице 2.1.

Таблица 2.1.

Имя поля

Тип

Описание

CN_ID

int

Идентификатор страны

CN_MT

int

Ключ страны в Мастер-туре

CN_NAME

varchar(50)

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

CN_ACTIV

bit

Активность страны

CN_DESC

text

Описание страны

2) Структура таблицы Dop_Price (справочник дополнительные услуги) представлена в таблице 2.2.

Таблица 2.2.

Имя поля

Тип

Описание

DP_ID

int

Идентификатор дополнит. услуг

DP_TURID

int

Ключ тура

DP_RTKEY

int

Ключ валюты

DP_BY

smallint

Цена за (день / ночь / единовр.)

DP_PRICE

int

Цена

DP_NAME

varchar(50)

Наименование доп услуги

3) Структура таблицы Imp_photo (справочник фотографии к впечатлениям) представлена в таблице 2.3.

Таблица 2.3.

Имя поля

Тип

Описание

IMPF_ID

bigint

Идентификатор фотографии

IMPF_IMPID

bigint

Ключ впечатления

IMPF_NAME

varchar(255)

Подпись к фотографии

IMPF_SM

varchar(255)

Название маленькой фотографии

IMPF_MED

varchar(255)

Название средней фотографии

IMPF_BIG

varchar(255)

Название большой фотографии


) Структура таблицы Impression (справочник впечатления туристов) представлена в таблице 2.4.

Таблица 2.4.

Имя поля

Тип

Описание

IMP_ID

bigint

Идентификатор впечатления

IMP_NAME

varchar(255)

Название впечатления

IMP_CNID

int

Ключ страны

IMP_DESC

text

Текст впечатления

IMP_ACTIV

bit

Активность впечатления

IMP_DATE

datetime

Дата добавления впечатления

IMP_SMDESC

text

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

IMP_URL

varchar(255)

URL-адрес сайта пользователя, оставившего впечатление

UMP_USRID

int

ключ пользователя

UMP_USRNAME

varchar(MAX)

Имя пользователя

UMP_USREMAIL

varchar(50)

Электронный адрес пользователя

) Структура таблицы ImpTypeKey (справочник, связывающий ключи впечатления и типа тура) представлена в таблице 2.5.

Таблица 2.5.

Тип

Описание

IK_ID

bigint

Идентификатор связки

IK_TPID

int

Ключ типа тура

IK_IMPID

bigint

Ключ впечатления

) Структура таблицы InfoPages (справочник «Справочная информация») представлена в таблице 2.6.

Таблица 2.6.

Имя поля

Тип

Описание

INFO_ID

bigint

Идентификатор раздела

INFO_PID

bigint

Ключ родительской категории

INFO_NAME

varchar(255)

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

INFO_DESC

text

Описание раздела

INFO_ACTIV

bit

Активность раздела

INFO_GL

bit

Выводить в главном меню (да/нет)

INFO_ORDER

int

Порядок вывода раздела в списках

) Структура таблицы News (справочник новости) представлена в таблице 2.7.

Таблица 2.7.

Имя поля

Тип

Описание

NWS_ID

bigint

Идентификатор новости

NWS_NAME

varchar(255)

Название новости

NWS_SMDESC

text

Краткое содержание новости

NWS_DESC

text

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

NWS_DATE

datetime

Дата добавления новости

NWS_ACTIV

bit

Активность новости

NWS_GL

bit

Выставить на главной странице

) Структура таблицы Orders (справочник заявки на тур) представлена в таблице 2.8.

Таблица 2.8.

Имя поля

Тип

Описание

ORD_ID

bigint

Идентификатор заявки

ORD_TURNAME

varchar(255)

Название тура

ORD_COUNTRY

varchar(255)

Страна

ORD_CITY

varchar(255)

Город

ORD_DATE

varchar(255)

Дата поездки

ORD_TURISTS

varchar(255)

Список туристов

ORD_FIO

varchar(255)

Ф.И.О. заказчика

ORD_ADRESS

varchar(255)

Адрес заказчика

ORD_PHONE

varchar(255)

Телефон заказчика

ORD_EMAIL

varchar(255)

Электронная почта заказчика

ORD_COMMENT

text

Комментарий к заказу

ORD_DATEIN

datetime

Дата отправки заявки

ORD_DELIVERY

bit

Проверена или нет заявка

) Структура таблицы PeriodPrice (справочник период действия цен) представлена в таблице 2.9.

Таблица 2.9.

Имя поля

Тип

Описание

PP_ID

int

Идентификатор периода цен

PP_DATEFROM

datetime

Дата действия с

PP_DATETO

datetime

Дата действия по

PP_TRKEY

int

Ключ тура

10) Структура таблицы Users (справочник пользователи) представлена в таблице 2.10.

Таблица 2.10.

Имя поля

Тип

Описание

USR_ID

int

Идентификатор пользователя

USR_NAME

varchar(255)

Имя пользователя

USR_CITY

varchar(100)

Город

USR_ADRESS

varchar(255)

Адрес

USR_PHONE

varchar(255)

Телефон

USR_EMAIL

varchar(255)

Электронный адрес

USR_COMMENT

text

Комментарий

USR_DATE

datetime

Дата регистрации

USR_REGOK

bit

Подтверждение регистрации (да/нет)


) Структура таблицы WelcomeText (справочник текст приветствия) представлена в таблице 2.11.

Таблица 2.11.

Имя поля

Тип

Описание

WEL_ID

int

Идентификатор приветствия

WEL_DESC

text

Текст приветствия


) Структура таблицы Zakaz (справочник заказ туров) представлена в таблице 2.12.

Таблица 2.12.

Имя поля

Тип

Описание

ZK_ID

int

Ключ заказа

ZK_DATE

datetime

Дата заказа

ZK_PRICE

int

Сумма заказа

ZK_SALE

int

Размер скидки заказа

ZK_FIO

varchar(50)

Ф.И.О. заказчика

ZK_PHONE

varchar(50)

Телефон заказчика

ZK_EMAIL

varchar(50)

Адрес электронной почты заказчика

ZK_INFO

text

Информация о заказе

ZK_COMMENT

text

Комментарии к заказу

ZC_PROVERKA

bit

Подтверждение заказа (да/нет)



13) Структура таблицы UserImages (справочник фотографии пользователей к впечатления) представлена в таблице 2.13.

Таблица 2.13.

Имя поля

Тип

Описание

CUI_ID

bigint

Идентификатор фотографии

CUI_FILE

varchar(MAX)

Название файла

CUI_IMPID

bigint

Ключ впечатления


) Структура таблицы TourDates (справочник период действия цен) представлена в таблице 2.14.

Таблица 2.14.

Имя поля

Тип

Описание

TD_ID

int

Идентификатор даты заезда

TD_TURID

int

Ключ тура

TD_DATE

datetime

Дата заезда тура



) Структура таблицы Price (справочник цены) представлена в таблице 2.15.

Таблица 2.15.

Имя поля

Тип

Описание

PR_ID

int

Идентификатор цены

PR_TURID

int

Ключ тура

PR_NAME

varchar(MAX)

Название цены

PR_RMID

int

Ключ типа размещения

PR_NIGHT

smallint

Кол-во ночей

PR_PRICE

int

цена

PP_ID

int

Ключ периода цен


) Структура таблицы TypeTours (справочник период действия цен) представлена в таблице 2.16.

Таблица 2.16.

Имя поля

Тип

Описание

TP_ID

int

Идентификатор типа тура

TP_NAME

varchar(150)

Название типа тура

TP_ACTIV

bit

Активность типа тура


) Структура таблицы TourTypeKey (справочник период действия цен) представлена в таблице 2.17.

Таблица 2.17.

Имя поля

Тип

Описание

TK_ID

bigint

Идентификатор связки

TK_TURID

bigint

Ключ тура

TK_TPID

int

Ключ типа тура

18) Структура таблицы Photos (справочник период действия цен) представлена в таблице 2.18.

Таблица 2.18.

Имя поля

Тип

Описание

FOTO_ID

bigint

Идентификатор фотографии

FOTO_TURID

int

Ключ тура

FOTO_NAME

varchar(255)

Подпись к фотографии

FOTO_BIG

varchar(255)

Название большой фотографии

FOTO_MED

varchar(50)

Название средней фотографии

FOTO_SM

varchar(50)

Название маленькой фотографии

19) Структура таблицы ZakazContent (справочник содержание заказа) представлена в таблице 2.19.

Таблица 2.19.

Имя поля

Тип

Описание

ZC_ID

int

Идентификатор позиции в заказе

ZC_ZKID

int

Ключ заказа

ZC_TRID

int

Ключ заказанного тура

ZC_NAMEID

text

Информация о заказанном туре и услугах

ZC_PRICE

float

Цена тура

20) Структура таблицы Tours (справочник туры) представлена в таблице 2.20.

Таблица 2.20.

Имя поля

Тип

Описание

TUR_ID

bigint

Идентификатор тура

TUR_NAME

varchar(255)

Название тура

TUR_DESCSMALL

text

Краткое описание тура

TUR_DESCBIG

text

Подробное описание тура

TUR_PHOTOSMALL

varchar(255)

Фотография к туру

TUR_TPID

int

Ключ типа тура

int

Ключ страны

TUR_BEST

bit

На главной странице (да/нет)

TUR_URL

varchar(255)

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

TUR_DATE

datetime

Дата добавления тура

TUR_ACTIV

bit

Активность тура

TUR_RTKEY

int

Ключ валюты

TUR_ByRoom

bit

Цена за (номер / человека)


) Структура таблицы Rooms (справочник размещения) представлена в таблице 2.21.

Таблица 2.21.

Имя поля

Тип

Описание

RM_ID

int

Идентификатор типа размещения

RM_NAME

varchar(50)

Название типа размещения

RM_MEN

int

Кол-во человек в номере

Описание выходной информации

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

Таблица 2.22.

Наименование документа

Описание

1

Заказ тура

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

2

Статистика по странам

Отображает статистику по самым востребованным странам

3

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

Отображает статистику по самым востребованным турам

4

Статистика по ценам

Содержит статистику по самым прибыльным станам


2.2 Программное обеспечение задачи

 

Алгоритм решения задачи

Алгоритм решения задачи заключается в следующем:

Принципиально алгоритм решения задачи заключается в следующем:

а) ввод информации о турах;

б) выбор тура, расчет стоимости;

в) заявка на тур;

г) связь с клиентом (уточнение данных, подтверждение заказа на основе телефонных звонков, личных встреч, документов «Электронное заказ»);

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

Описание интерфейса и работы с программным продуктом

При создании приложения была применена технология AJAX - технология обработки данных без перезагрузки страницы.

Среда разработки Microsoft Visual Studio 2005 Standard Edition имеет вид (рис 2.4):

Рис. 2.4. Среда разработки Microsoft Visual Studio 2005 Standard Edition

Административная часть сайта.

Просмотр и редактирование информационного разделах (рис. 2.5).

Рис. 2.5. Форма просмотра и редактирования информационного раздела

Просмотр и редактирование раздела «Страны» (рис. 2.6).

Рис. 2.6. Форма просмотра и редактирование раздела «Страны»

Просмотр и редактирование раздела «Виды туров» (2.7)

Рис. 2.7. Форма просмотра и редактирования раздела «Виды туров»

Просмотр раздела «Заказы туров», отправка счета на оплату клиенту менеджером (Рис. 2.8).

Рис. 2.8. Форма просмотра раздела «Заказы туров»

Добавление туров и заведение цен (рис. 2.9).

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

Рис. 2.9. Форма добавления туров и заведение цен

Страница редактирования тура (рис. 2.10.) позволяет выбрать страну тура, один или несколько типов, к которым можно отнести данный тур, добавить краткое описание (рис. 2.11) и фото тура, а также добавить основное описание тура (рис. 2.12) с помощью редактора.

Рис. 2.10. Форма редактирования туров

Рис. 2.11. Форма добавления краткого описания туров

Рис. 2.12. Форма добавления основного описания тура

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

Настройки тура. Для начала менеджер вводит валюту тура (рис. 2.15.). Также здесь определяется, даны ли цены по основным услугам за номер, либо за человека.

Редактирование даты туров. Далее вводятся даты заездов тура (рис 2.13). Менеджер выбирает даты в календаре и они автоматически заносятся в соседнее поле, откуда их можно удалить, в случае ошибки при введении.

Рис. 2.13. Форма настройка тура. Заведение валюты и даты туров

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

Рис. 2.14. Форма редактирования типов комнат

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

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

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

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

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

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

Если прокрутить ниже, то можно увидеть таблицу с ценами.

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

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

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

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

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

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

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

Расчет скидки. Скидка 5 % предоставляется членам клуба «Самараинтур Premium», зарегистрированным и авторизованным на сайте.

Сумма скидки = У (Цена тура) * 5 / 100

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

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

Ваш заказ подтвержден!

Информация о турах

Номер заказа: 24

Дата заказа: 28.05.2010

Цена: 78461 руб.

Скидка: 0 руб.

Ф.И.О. заказчика: Исанбаева Людмила

Телефон: 8-917-436-34-85mail: dn@samaraintour.ru

Информация о туристах: Исанбаева Людмила, паспорт Isanbaeva0634 437824 выдан 17.07.2009

Коментарий к заказу:

Информация о заказанных турах:

Страна: Япония

Тур: Праздник Весны в Японии

Заезд: 28.05.2010, 6 ночей

Номер: Одноместный номер, SGL, 1 чел.

Доп. услуги: визовая поддержка, медицинская страховка

Цена: 78461 руб.

В следующем письме будет отправлена квитанция на оплату тура.

Экономическое обоснование проекта

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

Всё вышеизложенное позволяет сделать вывод о целесообразности разработки.

Расчет показателей экономической эффективности проекта. Определение затрат на разработку

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

.        Основные затраты и комплектующие;

.        Заработная плата;

.        НДФЛ -13 %;

.        Эксплуатационные затраты при использовании ЭВМ в процессе программирования.

.        Накладные расходы (20 % от прямых расходов).

Статья 1. В затраты на основные материалы и комплектующие входят затраты на 10 дискет, пачку бумаги (500 листов):

стоимость диска -1 шт.                            25.00 руб.;

пачка бумаги                                            150 руб.;

транспортные расходы                           30 руб.;

Всего                                                        205 руб.

Статья 2. На основании загрузки исполнителя рассчитаем заработную плату (таблица 23).

Таблица 23. Расчет заработной платы на разработку темы

Исполнители

Оклад, руб.

З/пл. в день, руб.

Трудоемкость, чел./дн.

Суммарная з/пл., руб.

Специалист ИТО

15000

500

21

10500

Итого

Фонд заработной платы (ФЗП)

10500


Фонд оплаты труда (ФОТ) составляет:

ФОТ = ФЗП

ФОТ= 10500 руб.

Статья 3.НДФЛ составляет в сумме 13 % от заработной платы:

НДФЛ = 10500*13 %=1365 руб.

Статья 4. Эксплуатационные затраты при использовании ЭВМ в процессе программирования (Зм.вр.) рассчитываются согласно амортизационным отчислениям при учете основных средств. Амортизационные отчисления для ПЭВМ составляют 12,5 % в год. Работа ЭВМ составляет 21 день, это приблизительно 2/3 месяца. За это время амортизационные отчисления при первоначальной стоимости ПЭВМ 25000 руб. составят:


Статья 5. Накладные расходы. Накладные расходы составляют 20 % от прямых затрат


где Зпрямые - прямые затраты.

В прямые затраты входят затраты по статьям 1 - 4.

Зпрямые = 12243,60 руб.

Смета затрат на разработку темы приведена в таблице 15.

Таблица 24. Смета затрат на разработку темы

Статьи

Сумма руб.

1 Основные материалы и комплектующие

205,00

2 Заработная плата

10500

3 Отчисления:


а) НДФЛ

1365

4 Машинное время

173,6

5 Накладные расходы

2448,72

Итого:

14692,32

Определение эксплуатационных затрат

Произведём расчёт эксплуатационных затрат для ведения учёта с применением ПЭВМ, так и без них. Для наглядности, при сравнении затрат, расчет произведём за год.

Статьи затрат без применения ПЭВМ:

Статья 1. Заработная плата с НДФЛ.

Статья 2. Износ ПЭВМ.

Статья 3. Расходуемые материалы.

Статья 4. Накладные расходы.

Статьи затрат при применении ПЭВМ:

Статья 1. Заработная плата с НДФЛ.

Статья 2. Износ ПЭВМ.

Статья 3. Расходуемые материалы.

Статья 4. Накладные расходы.

Расчёты затрат проводятся аналогично расчётам затрат на разработку.

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

Статья 1. Заработная плата специалистов.

Оклад менеджера в международном отделе составляет 10000 руб.

За месяц у одного менеджера:

Оклад - 10000 руб.,

ФОТ - 10000 руб.,

НДФЛ - 1300 руб.

Итого за месяц заработная плата составляет 11300 руб. Менеджеров 6- их суммарная заработная плата за месяц составляет 67800 руб. Следовательно, сумма, потраченная, на годичную заработную плату 6 менеджеров составляет 813600 руб.

Также для составления туристического продукта требуется 1 продукт-менеджер.

Оклад продукт-менеджера в международном отделе составляет 20000 руб.

За месяц у одного продукт-менеджера:

Оклад - 20000 руб.,

ФОТ - 20000 руб.,

НДФЛ - 2600 руб.

Итого за месяц заработная плата 1 продукт-менеджера составляет 22600 руб. Следовательно, сумма, потраченная, на годичную заработную плату 1 продукт-менеджера составляет 271200 руб.

Суммарная заработная плата всех специалистов за месяц составляет 33900, сумма необходимая на выплату заработной платы за год составит 1084800 руб.

Статья 2. Расходуемые материалы.

За месяц расходуется 23 пачки бумаги по 100 руб., следовательно, за 12 месяцев необходимо оплатить 27600 руб.

Канцелярских принадлежностей на сумму 50 руб. в месяц, за 12 месяцев необходимо оплатить 600 руб.

Итого в месяц канцелярских принадлежностей требуется на сумму 28200, в год на сумму 338400

Статья 3. Износ ПЭВМ.

Износ ПЭВМ рассчитывается исходя из 12,5 процентов амортизационных отчислений за год.


где Снач. - начальная стоимость.

При работе постоянно используются 6 ПЭВМ поэтому:

Статья 4. Накладные расходы составляют 20 процентов от прямых затрат. В прямые затраты входят затраты по статьям 1 - 3.

Рнакладные= 371625 руб.

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

Статья 1. Заработная плата специалистов.

Сумма, потраченная на годичную заработную плату одного менеджера, составляет 135600 руб., на годичную заработную плату одного продукт-менеджера потребуется 271200 руб.

Итого заработная плата всем специалистам в год составит 406800 руб.

Статья 2. Износ ПЭВМ.

Износ ПЭВМ рассчитывается исходя из 12,5 процентов амортизационных отчислений за год.


где Снач. - начальная стоимость.

При работе постоянно используются две ПЭВМ поэтому:

Статья 3. Расходуемые материалы.

За один месяц используется 2 пачки бумаги по 100 руб., следовательно, за 12 месяцев необходимо затратить 2400 руб.

Канцелярских принадлежностей на сумму 20 руб. в месяц, за 12 месяцев необходимо оплатить 240 руб.

Итого в месяц канцелярских принадлежностей требуется на сумму 2640 руб., в год на сумму 5040 руб.

Статья 4. Накладные расходы.

В прямые затраты входят затраты по статьям 1 - 3. Накладные расходы составляют 20 процентов от прямых затрат.

Рнакладные= 83618 руб.

Смета годовых эксплуатационных затрат приведена в таблице 25. В данной т

Таблица 25. Эксплуатационные затраты

Статьи

Без применения ПЭВМ

С применением ПЭВМ

1 Заработная плата

1 084 800,00

406 800,00

2 Износ ПЭВМ

28 125,00

6250,00

3 Расходуемые материалы

4 200,00

5040,00

4 Накладные расходы

371 625,00

83618,00

Итого:

1 488 750,00

501 708,00


Вариант учета основных фондов с применением ПЭВМ экономит 987 042 руб. ежегодно.

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


где: Покуп. - период окупаемости в месяцах; Зразработка - затраты на разработку программы;

Эгодовая - годовая экономия.

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

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

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

Заключение


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

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

- Т.к. компания использует платформу MS SQL Server при работе базовых программ (Мастер-тур, 1С).

-        Приложения, написанные на asp.net работают гораздо быстрее остальных платформ.

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

         Позволяет создавать различные по сложности приложения.

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

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

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

. Модуль статистика - представляет собой один из инструментов получения статистики на определенную тематику. Содержится в административной части;

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

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

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

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

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

сайт стоимость туристический алгоритм

1)  Абросимов А.Г., Бородинова М.А. Дипломное проектирование: Учебное пособие. - Самара. Изд-во Самарского государственного экономического университета, 2008. - 133 с.

2)      Бутко В.Р., Дерябкин В.П., CASE-технологии моделирования и проектирования информационных систем: Учебное пособие. - Самара. Изд-во Самарск. гос. экон. акад., 2004. - 105 с. (Глава из учебного пособия.)

)        Кристина Уодтке, Информационная архитектура: чертежи для сайта. - Учебно-справочное издание - Москва. Изд-во Кудиц-образ, 2004. - 320 с.

)        Ани Фйо, Рентабельный Web-дизайн. Учебно-справочное издание - Учебно-справочное издание - Москва. Изд-во Кудиц-образ, 2004. - 336 с.

)        Тамми Сакс, Гари Мак-Клейн, Дизайн и архитектура современного Web-сайта. Опыт профессионалов - Москва. Издательский дом «Вильямс», 2002.-304 с.

)        Джейсон Прайс, Майк Гандэрлой., Visual C#.NET. Полное руководство. Киев: «ВЕК+», Санкт-Петербург: «Корона принт», Киев: «НТИ», Москва: «Энтроп», 2004 - 960 с.

Приложение

Программные модули

Административная часть. Редактирование информации о туре:

using System;System. Data;System. Configuration;System. Collections;System. Web;System. Web. Security;System. Web.UI;

//using System. Web.UI. WebControls;System. Web.UI. WebControls. WebParts;System. Web.UI. HtmlControls;System. Data. SqlClient;System.IO;System. ComponentModel;System. Drawing;System. Web. SessionState;System. Drawing. Imaging;System. Drawing. Drawing2D;

partial class touredit: System. Web.UI. Page

{Boolean filePr (string fileName)

{

// ПРОВЕРКА НА СУЩЕСТВОВАНИЕ ФАЛА[] AllFiles;= Directory. GetFiles (Request. MapPath (»../photos») + «\\»);flag1 = false;(int i = 0; i <= AllFiles. GetUpperBound(0); i++) // хм, а загружены ли уже такие?

{[i] = Path. GetFileName (AllFiles[i]);(Path. GetFileName (AllFiles[i]).ToString() == fileName. ToString())

{

//LBLError. Text = «Файл с таким именем существует!»;= true;;

}

}

flag1;

}

Boolean filePrO (string fsm, string fmed, string fbig)

{[] AllFiles;= Directory. GetFiles (Request. MapPath (»../photos») + «\\»);flag1 = false;(int i = 0; i <= AllFiles. GetUpperBound(0); i++) // хм, а загружены ли уже такие?

{[i] = Path. GetFileName (AllFiles[i]);(Path. GetFileName (AllFiles[i]).ToString() == fsm. ToString())

{

//LBLError. Text = «Файл с таким именем существует!»;= true;;

}if (Path. GetFileName (AllFiles[i]).ToString() == fmed. ToString())

{

//LBLError. Text = «Файл с таким именем существует!»;= true;;

}if (Path. GetFileName (AllFiles[i]).ToString() == fbig. ToString())

{

//LBLError. Text = «Файл с таким именем существует!»;= true;;

}

}

flag1;

}

void Page_Load (object sender, EventArgs e)

{id = 0;

{= Convert. ToInt32 (Request. QueryString [«id»].ToString());. Enabled = true;. Text = «»;

}

{= 0;. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

{

con = new SqlConnection (ConfigurationManager. ConnectionStrings [«clubConnectionString»].ConnectionString);. Open();

(! IsPostBack)

{CountryID = 0;

//SELECT TUR_NAME, TUR_DESCSMALL, TUR_DESCBIG, TUR_TPID, TUR_CNID, TUR_BEST, TUR_URL, TUR_DATE, TUR_ACTIV FROM club_Tours WHERE (TUR_ID = @id)cmdN = new SqlCommand («SELECT TUR_NAME, TUR_DESCSMALL, TUR_DESCBIG, TUR_TPID, TUR_CNID, TUR_BEST, TUR_URL, TUR_ACTIV FROM club_Tours WHERE (TUR_ID =» + id. ToString() +»)», con);readerN = cmdN. ExecuteReader();(readerN. Read())

{. Text = readerN[0].ToString(); // Название. Text = readerN[1].ToString(); // Краткое описание. Value = readerN[2].ToString(); // Полное описание. Text = readerN[6].ToString(); // Адрес URL

(readerN[4].ToString()!= «»)= Convert. ToInt32 (readerN[4].ToString()); // Страна

// активность(Convert. ToBoolean (readerN[7].ToString()) == true). Checked = true;. Checked = false;

// лучшие(Convert. ToBoolean (readerN[5].ToString()) == true). Checked = true;. Checked = false;

}. Close();

. DataBind();(CountryID!= 0). Items. FindByValue (CountryID. ToString()).Selected = true;

. DataBind();

PathPhoto = «»;(Convert. ToInt32 (GridView2. Rows. Count)!= 0)

(((System. Web.UI. WebControls. Label) GridView2. Rows[0].Cells[0].FindControl («Label1»)).Text!= «»)

{= «http:// » + HttpContext. Current. Request. Url. Host + «/photos/» + ((System. Web.UI. WebControls. Label) GridView2. Rows[0].Cells[0].FindControl («Label2»)).Text;

((System. Web.UI. WebControls. Label) GridView2. Rows[0].Cells[0].FindControl («Label2»)).Text = PathPhoto;. Visible = false;. Visible = true;

}

{. Visible = true;. Visible = false;. Visible = false;

}

}

flag = false;(int i = 0; i < GridView3. Rows. Count; i++)

{= false;cmdF = new SqlCommand («SELECT TK_TURID, TK_TPID FROM club_TourTypeKey WHERE (TK_TURID =» + id. ToString() +») AND (TK_TPID =» + ((System. Web.UI. WebControls. TextBox) GridView3. Rows[i].Cells[0].FindControl («TextBox11»)).Text +»)», con);readerF = cmdF. ExecuteReader();(readerF. Read())

{= true;

}. Close();

(flag == true)

((System. Web.UI. WebControls. CheckBox) GridView3. Rows[i].Cells[0].FindControl («CheckBox4»)).Checked = true;

((System. Web.UI. WebControls. CheckBox) GridView3. Rows[i].Cells[0].FindControl («CheckBox4»)).Checked = false;

}

}

. Close();

}

{. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

}void Button1_Click (object sender, EventArgs e)

{. Text = «»;

id = 0;CountryID = 0;TypeID = 0;Activ = 0;Best = 0;

{= Convert. ToInt32 (Request. QueryString [«id»].ToString());. Enabled = true;. Text = «»;

}

{= 0;. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

(id!= 0)

{

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«clubConnectionString»].ConnectionString);. Open();

// страна и вид тура= Convert. ToInt32 (DropDownList1. SelectedValue);

// активность(CheckBox1. Checked)= 1;= 0;

// на главную(CheckBox2. Checked)= 1;= 0;

//SELECT TUR_NAME, TUR_DESCSMALL, TUR_DESCBIG, TUR_TPID, TUR_CNID, TUR_BEST, TUR_URL, TUR_DATE, TUR_ACTIV FROM club_Tours WHERE (TUR_ID = @id)

cmd = new SqlCommand («UPDATE club_Tours SET TUR_NAME = @name, TUR_DESCSMALL = @dsm, TUR_DESCBIG = @dbig, TUR_CNID = @cn, TUR_BEST = @bs, TUR_URL = @url, TUR_ACTIV = @act WHERE (TUR_ID =» + id. ToString() +»)», con);. CommandType = CommandType. Text;. Parameters. AddWithValue («@name», TextBox1. Text);. Parameters. AddWithValue («@dsm», TextBox2. Text);. Parameters. AddWithValue («@dbig», FCKeditor1. Value);. Parameters. AddWithValue («@cn», CountryID. ToString());. Parameters. AddWithValue («@bs», Best. ToString());. Parameters. AddWithValue («@url», TextBox4. Text);. Parameters. AddWithValue («@act», Activ. ToString());. ExecuteNonQuery();

flag = false;(int i = 0; i < GridView3. Rows. Count; i++)

{= false;cmdF = new SqlCommand («SELECT TK_TURID, TK_TPID FROM club_TourTypeKey WHERE (TK_TURID =» + id. ToString() +») AND (TK_TPID =» + ((System. Web.UI. WebControls. TextBox) GridView3. Rows[i].Cells[0].FindControl («TextBox11»)).Text +»)», con);readerF = cmdF. ExecuteReader();(readerF. Read())

{= true;

}. Close();

(flag == true && ((System. Web.UI. WebControls. CheckBox) GridView3. Rows[i].Cells[0].FindControl («CheckBox4»)).Checked == false)

{

// удаляемcmdD = new SqlCommand («DELETE FROM club_TourTypeKey WHERE (TK_TURID =» + id. ToString() +») AND (TK_TPID =» + ((System. Web.UI. WebControls. TextBox) GridView3. Rows[i].Cells[0].FindControl («TextBox11»)).Text +»)», con);. ExecuteNonQuery();

}

(flag == false && ((System. Web.UI. WebControls. CheckBox) GridView3. Rows[i].Cells[0].FindControl («CheckBox4»)).Checked == true)

{

// добавляемcmdIn = new SqlCommand («INSERT INTO club_TourTypeKey (TK_TURID, TK_TPID) VALUES ('» + id. ToString() + «', '» + ((System. Web.UI. WebControls. TextBox) GridView3. Rows[i].Cells[0].FindControl («TextBox11»)).Text + «')», con);. ExecuteNonQuery();

}

}

. Close();

. Redirect («tours.aspx? cn=» + CountryID + «&tp=» + TypeID);

}

{. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;

}

}

}

void Button3_Click (object sender, EventArgs e)

{id = 0;PathPhoto = «»;. Text = «»;

{= Convert. ToInt32 (Request. QueryString [«id»].ToString());. Enabled = true;. Text = «»;

}

{= 0;. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

(id!= 0)

{

{strFileNameSm = FileSmall. PostedFile. FileName; // большое фото= System.IO. Path. GetFileName(strFileNameSm);strFileNameSm1 = System.IO. Path. GetFileNameWithoutExtension(strFileNameSm);

NameSmPhoto = «»;

if (strFileNameSm. ToString() == «»)

{. Text = «<font color=\ «red\">Не указано имя файла!</font>»;

}

{

// случайное числоrnd = new Random();irand = rnd. Next (1000, 10000);

// путь= «systemfile» + irand. ToString() +».jpg»;. PostedFile. SaveAs (Request. MapPath (»../photos») + «\\» + strFileNameSm);

// название фото= id + «_tour_sm.jpg»;

// проверка на существование файловflag1 = false;= filePr(NameSmPhoto);s = 0;(flag1)

{++;= id + «_» + s. ToString() + «_tour_sm.jpg»;= filePr(NameSmPhoto);

}

fontSm = new Font («Arial», 14, FontStyle. Bold);

 // размерыimgWdSm = 0;imgHdSm = 0;

b = new Bitmap (Request. MapPath (»../photos») + «\\» + strFileNameSm);

(b. Width > b. Height)

{= 135;

(b. Width > 135)

{= (int) (imgWdSm * ((double) b. Height / (double) b. Width));

}

{= b. Width;= b. Height;

}

//imgHdSm = (int) (imgWdSm * ((double) b. Height / (double) b. Width));

}

{= 135;

(b. Height > 135)

{= (int) (imgHdSm * ((double) b. Width / (double) b. Height));

}

{= b. Width;= b. Height;

}

//imgWdSm = (int) (imgHdSm * ((double) b. Width / (double) b. Height));

}

// рисуемg;img = null;. MakeTransparent();= Image. FromFile (Request. MapPath (»../photos») + «\\» + strFileNameSm); // .GetThumbnailImage (imgWdSm, imgHdSm, null, IntPtr. Zero);= Graphics. FromImage(b);. SmoothingMode = SmoothingMode. HighQuality;. DrawImage (img, 0, 0, imgWdSm, imgHdSm);bbb = new Bitmap(b);bb = new Bitmap (imgWdSm, imgHdSm);. SetResolution (72, 72);= Graphics. FromImage(bb);. SetResolution (72, 72);. DrawImageUnscaled (bbb, 0, 0);

// сохраняем. Save (Request. MapPath (»../photos/» + NameSmPhoto. ToString()), ImageFormat. Jpeg);

// делаем запись в базуcon = new SqlConnection (ConfigurationManager. ConnectionStrings [«clubConnectionString»].ConnectionString);. Open();cmd = new SqlCommand («UPDATE club_Tours SET TUR_PHOTOSMALL = @foto WHERE (TUR_ID =» + id. ToString() +»)», con);. CommandType = CommandType. Text;. Parameters. AddWithValue («@foto», NameSmPhoto. ToString());. ExecuteNonQuery();. Close();

. Flush();. Dispose();. Dispose();. Dispose();. Dispose();. Dispose();

. Delete (Request. MapPath (»../photos») + «\\» + strFileNameSm. ToString());

. DataBind();. Visible = true;. Visible = false;. Visible = true;

PathPhoto = «http:// » + HttpContext. Current. Request. Url. Host + «/photos/» + ((System. Web.UI. WebControls. Label) GridView2. Rows[0].Cells[0].FindControl («Label2»)).Text;

((System. Web.UI. WebControls. Label) GridView2. Rows[0].Cells[0].FindControl («Label2»)).Text = PathPhoto;

. Text = «<font color=\ «green\">Маленькое фото успешно добавлено!</font>»;

}

}

{. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

}

}

void Button4_Click (object sender, EventArgs e)

{id = 0;NamePhoto = «»;. Text = «»;

{= Convert. ToInt32 (Request. QueryString [«id»].ToString());. Enabled = true;. Text = «»;

}

{= 0;. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

{(Convert. ToInt32 (GridView2. Rows. Count)!= 0)

{(((System. Web.UI. WebControls. Label) GridView2. Rows[0].Cells[0].FindControl («Label1»)).Text!= «»)

{= ((System. Web.UI. WebControls. Label) GridView2. Rows[0].Cells[0].FindControl («Label1»)).Text;

// делаем запись в базуcon = new SqlConnection (ConfigurationManager. ConnectionStrings [«clubConnectionString»].ConnectionString);. Open();cmd = new SqlCommand («UPDATE club_Tours SET TUR_PHOTOSMALL = @foto WHERE (TUR_ID =» + id. ToString() +»)», con);. CommandType = CommandType. Text;. Parameters. AddWithValue («@foto», «»);. ExecuteNonQuery();. Close();

File. Delete (Request. MapPath (»../photos») + «\\» + NamePhoto);

. DataBind();. Visible = true;. Visible = false;. Visible = false;

. Text = «<font color=\ «green\">Маленькое фото успешно удалено!</font>»;

}

}

}

{. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

}

bool filePr()

{new Exception («The method or operation is not implemented.»);

}void Button2_Click (object sender, EventArgs e)

{id = 0;NamePhoto = «»;. Text = «»;

{= Convert. ToInt32 (Request. QueryString [«id»].ToString());. Enabled = true;. Text = «»;

}

{= 0;. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

{strFileNameBg = FileBig. PostedFile. FileName; // большое фото= System.IO. Path. GetFileName(strFileNameBg);strFileNameBg1 = System.IO. Path. GetFileNameWithoutExtension(strFileNameBg);

idF = 0;NameSmPhoto = «»;NameMedPhoto = «»;NameBigPhoto = «»;

(strFileNameBg. ToString() == «»)

{. Text = «<font color=\ «red\">Не указано имя файла!</font>»;

}

{rnd = new Random();irand = rnd. Next (1000, 10000);

= «systemfile» + irand. ToString() +».jpg»;. PostedFile. SaveAs (Request. MapPath (»../photos») + «\\» + strFileNameBg);

// делаем пустую запись в базуcon = new SqlConnection (ConfigurationManager. ConnectionStrings [«clubConnectionString»].ConnectionString);. Open();cmd = new SqlCommand();. Connection = con;. CommandText = «INSERT INTO club_Photos (FOTO_TURID) VALUES (» + id. ToString() +»)\r SELECT @@identity»;(SqlDataReader dr = cmd. ExecuteReader (CommandBehavior. CloseConnection))

{(dr. Read())= Convert. ToInt32 (dr. GetDecimal(0));

}. Close();

= idF + «_prod_sm.jpg»;= idF + «_prod_med.jpg»;= idF + «_prod_big.jpg»;

// проверка на существование файловflag1 = false;

= filePrO (NameSmPhoto, NameMedPhoto, NameBigPhoto);

s = 0;(flag1)

{++;= idF + «_» + s. ToString() + «_prod_big.jpg»;= idF + «_» + s. ToString() + «_prod_sm.jpg»;= idF + «_» + s. ToString() + «_prod_sm.jpg»;

= filePrO (NameSmPhoto, NameMedPhoto, NameBigPhoto);

}

imgWdSm = 0;imgHdSm = 0;

imgWdMd = 0;imgHdMd = 0;

imgWdBg = 0;imgHdBg = 0;

// загружаем в битмапыb = new Bitmap (Request. MapPath (»../photos») + «\\» + strFileNameBg);b1 = new Bitmap (Request. MapPath (»../photos») + «\\» + strFileNameBg);b2 = new Bitmap (Request. MapPath (»../photos») + «\\» + strFileNameBg);

// определяем размеры фото(b. Width > b. Height)

{= 140;= 200;= 500;

// маленькая(b. Width > 140)

{= (int) (imgWdSm * ((double) b. Height / (double) b. Width));

}

{= b. Width;= b. Height;

}

// средняя(b. Width > 200)

{= (int) (imgWdMd * ((double) b. Height / (double) b. Width));

}

{= b. Width;= b. Height;

}

// большая(b. Width > 500)

{= (int) (imgWdBg * ((double) b. Height / (double) b. Width));

}

{= b. Width;= b. Height;

}

}

{= 140;= 200;= 500;

// маленькая(b. Height > 140)

{= (int) (imgHdSm * ((double) b. Width / (double) b. Height));

}

{= b. Width;= b. Height;

}

// средняя(b. Height > 200)

{= (int) (imgHdMd * ((double) b. Width / (double) b. Height));

}

{= b. Width;= b. Height;

}

// большая(b. Height > 500)

{= (int) (imgHdBg * ((double) b. Width / (double) b. Height));

}

{= b. Width;= b. Height;

}

}

g;g1;g2;

Image img = null;. MakeTransparent();. MakeTransparent();. MakeTransparent();

= Image. FromFile (Request. MapPath (»../photos») + «\\» + strFileNameBg); // .GetThumbnailImage (imgWdSm, imgHdSm, null, IntPtr. Zero);= Graphics. FromImage(b);= Graphics. FromImage(b1);= Graphics. FromImage(b2);

. SmoothingMode = SmoothingMode. HighQuality;. SmoothingMode = SmoothingMode. HighQuality;. SmoothingMode = SmoothingMode. HighQuality;

. DrawImage (img, 0, 0, imgWdSm, imgHdSm);. DrawImage (img, 0, 0, imgWdMd, imgHdMd);. DrawImage (img, 0, 0, imgWdBg, imgHdBg);

bbb = new Bitmap(b);bbb1 = new Bitmap(b1);bbb2 = new Bitmap(b2);

bb = new Bitmap (imgWdSm, imgHdSm);bb1 = new Bitmap (imgWdMd, imgHdMd);bb2 = new Bitmap (imgWdBg, imgHdBg);

. SetResolution (72, 72);. SetResolution (72, 72);. SetResolution (72, 72);

= Graphics. FromImage(bb);= Graphics. FromImage(bb1);= Graphics. FromImage(bb2);

. SetResolution (72, 72);. SetResolution (72, 72);. SetResolution (72, 72);

. DrawImageUnscaled (bbb, 0, 0);. DrawImageUnscaled (bbb1, 0, 0);. DrawImageUnscaled (bbb2, 0, 0);

. Save (Request. MapPath (»../photos/» + NameSmPhoto. ToString()), ImageFormat. Jpeg);. Save (Request. MapPath (»../photos/» + NameMedPhoto. ToString()), ImageFormat. Jpeg);. Save (Request. MapPath (»../photos/» + NameBigPhoto. ToString()), ImageFormat. Jpeg);

cmd1 = new SqlCommand («UPDATE club_Photos SET FOTO_SM = @sm, FOTO_MED = @med, FOTO_BIG = @big, FOTO_NAME = @name WHERE (FOTO_ID =» + idF. ToString() +»)», con);. CommandType = CommandType. Text;. Parameters. AddWithValue («@sm», NameSmPhoto. ToString());. Parameters. AddWithValue («@med», NameMedPhoto. ToString());. Parameters. AddWithValue («@big», NameBigPhoto. ToString());. Parameters. AddWithValue («@name», TextBox5. Text);. Open();. ExecuteNonQuery();. Close();

. Flush();. Dispose();. Dispose();. Dispose();. Dispose();. Dispose();

. Flush();. Dispose();. Dispose();. Dispose();. Dispose();

. Flush();. Dispose();. Dispose();. Dispose();. Dispose();

. Delete (Request. MapPath (»../photos») + «\\» + strFileNameBg. ToString());

. DataBind();

. Text = «<font color=\ «green\">Фото успешно добавлена!</font>»;. Text = «»;

}

}

{. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

}void Button6_Click (object sender, EventArgs e)

{id = 0;

{= Convert. ToInt32 (Request. QueryString [«id»].ToString());. Enabled = true;. Text = «»;

}

{= 0;. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

{(Convert. ToInt32 (GridView1. Rows. Count)!= 0)

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«clubConnectionString»].ConnectionString);. Open();

(int i = 0; i < Convert. ToInt32 (GridView1. Rows. Count); i++)

{

cmd = new SqlCommand («UPDATE club_Photos SET FOTO_NAME = @name WHERE (FOTO_ID =» + ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox6»)).Text. ToString() +»)», con);. CommandType = CommandType. Text;. Parameters. AddWithValue («@name», ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox7»)).Text. ToString());. ExecuteNonQuery();

}

. Close();

}

. Text = «<font color=\ «green\">Сохранение прошло успешно!</font>»;. DataBind();

}

{. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

}void Button5_Click (object sender, EventArgs e)

{id = 0;Del = 0;

{= Convert. ToInt32 (Request. QueryString [«id»].ToString());. Enabled = true;. Text = «»;

}

{= 0;. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«clubConnectionString»].ConnectionString);. Open();

for (int i = 0; i < Convert. ToInt32 (GridView1. Rows. Count); i++)

{(((System. Web.UI. WebControls. CheckBox) GridView1. Rows[i].Cells[0].FindControl («CheckBox3»)).Checked == true)

{= 1;

}

{= 0;

}

(Del == 1)

{cmdD = new SqlCommand («DELETE FROM club_Photos WHERE (FOTO_ID =» + ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox6»)).Text. ToString() +»)», con);. ExecuteNonQuery();

. Delete (Request. MapPath (»../photos») + «\\» + ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox10»)).Text. ToString());. Delete (Request. MapPath (»../photos») + «\\» + ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox9»)).Text. ToString());. Delete (Request. MapPath (»../photos») + «\\» + ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox8»)).Text. ToString());

}

}

. Close();

. Text = «<font color=\ «green\">Удаление прошло успешно!</font>»;. DataBind();

}

{. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

}void Button7_Click (object sender, EventArgs e)

{id = 0;

{= Convert. ToInt32 (Request. QueryString [«id»].ToString());. Enabled = true;. Text = «»;

}

{= 0;. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

{

// предварительно выбираем страну и вид тура для выхода

// страна и вид тура

//int CountryID = Convert. ToInt32 (DropDownList1. SelectedValue);

//int TypeID = Convert. ToInt32 (DropDownList2. SelectedValue);

con = new SqlConnection (ConfigurationManager. ConnectionStrings [«clubConnectionString»].ConnectionString);. Open();

// удалить все в туре фото(Convert. ToInt32 (GridView1. Rows. Count)!= 0)

{(int i = 0; i < Convert. ToInt32 (GridView1. Rows. Count); i++)

{

. Delete (Request. MapPath (»../photos») + «\\» + ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox10»)).Text. ToString());. Delete (Request. MapPath (»../photos») + «\\» + ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox9»)).Text. ToString());. Delete (Request. MapPath (»../photos») + «\\» + ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox8»)).Text. ToString());

cmdD = new SqlCommand («DELETE FROM club_Photos WHERE (FOTO_ID =» + ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox6»)).Text. ToString() +»)», con);. ExecuteNonQuery();

}

}

// удалить маленькое фотоNamePhoto = «»;(Convert. ToInt32 (GridView2. Rows. Count)!= 0)

{(((System. Web.UI. WebControls. Label) GridView2. Rows[0].Cells[0].FindControl («Label1»)).Text!= «»)

{= ((System. Web.UI. WebControls. Label) GridView2. Rows[0].Cells[0].FindControl («Label1»)).Text;. Delete (Request. MapPath (»../photos») + «\\» + NamePhoto);

}

}

// удалить связку с типом туровcmdTT = new SqlCommand («DELETE FROM club_TourTypeKey WHERE (TK_TURID =» + id. ToString() +»)», con);. ExecuteNonQuery();

 // удалить турcmdDT = new SqlCommand («DELETE FROM club_Tours WHERE (TUR_ID =» + id. ToString() +»)», con);. ExecuteNonQuery();. Close();

//Response. Redirect («tours.aspx? cn=» + CountryID + «&tp=» + TypeID);. Redirect («tours.aspx»);

}

{. Text = «<font color=\ «red\">Ошибка! Обратитесь к веб-мастеру!</font>»;. Enabled = false;

}

}

}

Административная часть заведение цен на тур.

using System;System. Data;System. Configuration;System. Collections;System. Web;System. Web. Security;System. Web.UI;System. Web.UI. WebControls;System. Web.UI. WebControls. WebParts;System. Web.UI. HtmlControls;System. Data. SqlClient;

partial class Default2: System. Web.UI. Page

{void Page_Load (object sender, EventArgs e)

{(! IsPostBack)

{id = Convert. ToInt32 (Request. QueryString [«id»].ToString());con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();. DataBind();. Items. Add (new ListItem («Выберите значение», «0»));

com1 = new SqlCommand («SELECT TUR_RTKEY, TUR_BYROOM, TUR_NAME FROM club_TOURS WHERE (TUR_ID =» + id. ToString() +»)», con);rd2 = com1. ExecuteReader();(rd2. Read())

{. ClearSelection();. Items. FindByValue (rd2 [0].ToString()).Selected=true;(Convert. ToBoolean (rd2 [1].ToString()) == true). Checked = true;CheckBox6. Checked = false;. Text = rd2 [2].ToString();

}

ListBind();

}. Text = «»;. Text = «»;

}

void ListBind()

{id = Convert. ToInt32 (Request. QueryString [«id»].ToString());con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();com1 = new SqlCommand («SELECT PP_ID, PP_DATEFROM, PP_DATETO FROM club_PeriodPrice WHERE (PP_TRKEY =» + id. ToString() +»)», con);rd2 = com1. ExecuteReader();. Items. Clear();. Items. Add (new ListItem («Выберите значение», «0»));(rd2. Read())

{dt = Convert. ToDateTime (rd2 [1].ToString());dt1 = Convert. ToDateTime (rd2 [2].ToString());. Items. Add (new ListItem (dt. ToShortDateString() + «-» + dt1. ToShortDateString(), rd2 [0].ToString()));

}. Close();. Close();

}void Calendar1_SelectionChanged (object sender, EventArgs e)

{dt = Calendar1. SelectedDate;

// выбираем значение переменной id из адресной страныid = Convert. ToInt32 (Request. QueryString [«id»].ToString());

// описываем соединение с базой данныхcon = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();

//sql-запрос, выбирающий дату для данного тура если она уже есть в базеcom2 = new SqlCommand («SELECT TD_DATE FROM club_TourDates WHERE (TD_TURID = @id) and (td_date=@date)», con);

// передача параметров в забров. Parameters. AddWithValue («@id», id. ToString());. Parameters. AddWithValue («@date», dt. ToShortDateString());

// читает данные, выбранные запросомdt1 = com2. ExecuteReader();

// доп. переменная, определяющая, есть ли в БД дата для этого тураflag = 0;(dt1. Read()) // перебираем DataReader

{

// если дата есть, значение переменной меняется= 1;

}. Close(); // закрываем(flag == 0) // если дата еще не добавлена в БД для этого тура

{

// записываем дату в БДcmd = new SqlCommand («INSERT INTO club_TourDates (TD_DATE, TD_TURID) VALUES (@date,@id)», con);. Parameters. AddWithValue («@id», id. ToString());. Parameters. AddWithValue («@date», dt. ToShortDateString());. ExecuteNonQuery();

// обновляем GridView. DataBind();

}

// закрываем соединение. Close();

}void Button1_Click (object sender, EventArgs e)

{

// описываем соединение с базой данныхcon = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();(int i = 0; i < GridView1. Rows. Count; i++)

{(((CheckBox) GridView1. Rows[i].Cells[0].FindControl («CheckBox1»)).Checked == true)

{cmd = new SqlCommand («DELETE FROM club_TourDates WHERE (TD_ID = @id)», con);. Parameters. AddWithValue («@id», ((Label) GridView1. Rows[i].Cells[0].FindControl («Label1»)).Text. ToString());. ExecuteNonQuery();

}

}. Close();. DataBind();. Text = «Удалено»;

}void Button2_Click (object sender, EventArgs e)

{(TextBox5. Text == «» || TextBox6. Text == «»)

{. Text = «Заполните все поля»;

}

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();cmd = new SqlCommand («INSERT INTO club_Rooms (RM_NAME, RM_MEN) VALUES (@name,@men)», con);. Parameters. AddWithValue («@name», TextBox5. Text. ToString());. Parameters. AddWithValue («@men», TextBox6. Text. ToString());. ExecuteNonQuery();. Close();. DataBind();. Text = «»;. Text = «»;. Text = «»;. Text = «Добавлено»;

}

}

 // Сохранениеvoid Button3_Click (object sender, EventArgs e)

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();(int i = 0; i < GridView2. Rows. Count; i++)

{cmd = new SqlCommand («UPDATE club_Rooms SET RM_NAME = @name, RM_MEN = @men WHERE (RM_ID = @id)», con);

. Parameters. AddWithValue («@id», ((Label) GridView2. Rows[i].Cells[0].FindControl («Label1»)).Text. ToString());. Parameters. AddWithValue («@name», ((TextBox) GridView2. Rows[i].Cells[0].FindControl («TextBox3»)).Text. ToString());. Parameters. AddWithValue («@men», ((TextBox) GridView2. Rows[i].Cells[0].FindControl («TextBox4»)).Text. ToString());. ExecuteNonQuery();

}. Close();. DataBind();

}

// Удалениеvoid Button4_Click (object sender, EventArgs e)

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();(int i = 0; i < GridView2. Rows. Count; i++)

{(((CheckBox) GridView2. Rows[i].Cells[0].FindControl («CheckBox2»)).Checked == true)

{com2 = new SqlCommand («SELECT PR_RMID AS Expr1 FROM club_Price WHERE (PR_RMID = @id)», con);. Parameters. AddWithValue («@id», ((Label) GridView2. Rows[i].Cells[0].FindControl («Label1»)).Text. ToString());dt1 = com2. ExecuteReader();flag = 0;(dt1. Read())

{

= 1;

}. Close();(flag == 0)

{

cmd = new SqlCommand («DELETE FROM club_Rooms WHERE (RM_ID = @id)», con);. Parameters. AddWithValue («@id», ((Label) GridView2. Rows[i].Cells[0].FindControl («Label1»)).Text. ToString());. ExecuteNonQuery();

}

}. Close();. DataBind();. Text = «Удалено»;

}

// Сохранениеvoid Button5_Click (object sender, EventArgs e)

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();(int i = 0; i < GridView3. Rows. Count; i++)

{cmd = new SqlCommand («UPDATE club_PeriodPrice SET PP_DATETO = @dateto, PP_DATEFROM = @datefrom WHERE (PP_ID = @id)», con);

. Parameters. AddWithValue («@id», ((Label) GridView3. Rows[i].Cells[0].FindControl («Label1»)).Text. ToString());. Parameters. AddWithValue («@datefrom», ((TextBox) GridView3. Rows[i].Cells[0].FindControl («TextBox7»)).Text. ToString());. Parameters. AddWithValue («@dateto», ((TextBox) GridView3. Rows[i].Cells[0].FindControl («TextBox8»)).Text. ToString());. ExecuteNonQuery();

}. Close();. DataBind();. Text = «Изменения сохранены»;

}

// Добавлениеvoid Button7_Click (object sender, EventArgs e)

{(TextBox7. Text == «» || TextBox8. Text == «»)

{. Text = «Заполните все поля»;

}

{

{ // выбираем значение переменной id из адресной страныid = Convert. ToInt32 (Request. QueryString [«id»].ToString());con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();cmd = new SqlCommand («INSERT INTO club_PeriodPrice (PP_DATETO, PP_DATEFROM, PP_TRKEY) VALUES (@dateto,@datefrom,@trkey)», con);. Parameters. AddWithValue («@datefrom», TextBox7. Text. ToString());. Parameters. AddWithValue («@dateto», TextBox8. Text. ToString());. Parameters. AddWithValue («@trkey», id. ToString());. ExecuteNonQuery();. Close();. DataBind();. Text = «»;. Text = «»;. Text = «»;. Text = «Добавлено»;();

}

}

}

 // Удалениеvoid Button6_Click (object sender, EventArgs e)

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();(int i = 0; i < GridView3. Rows. Count; i++)

{(((CheckBox) GridView3. Rows[i].Cells[0].FindControl («CheckBox3»)).Checked == true)

{com2 = new SqlCommand («SELECT PR_RMID AS Expr1 FROM club_Price WHERE (PR_RMID = @id)», con);. Parameters. AddWithValue («@id», ((Label) GridView3. Rows[i].Cells[0].FindControl («Label1»)).Text. ToString());dt1 = com2. ExecuteReader();flag = 0;(dt1. Read())

{

= 1;

}. Close();(flag == 0)

{

cmd = new SqlCommand («DELETE FROM club_PeriodPrice WHERE (PP_ID = @id)», con);. Parameters. AddWithValue («@id», ((Label) GridView3. Rows[i].Cells[0].FindControl («Label1»)).Text. ToString());. ExecuteNonQuery();

}

}

}. Close();. DataBind();();. Text= «Удалено»;

}

void DropDownList1_SelectedIndexChanged (object sender, EventArgs e)

{. DataBind();

}

// Добавление основных ценvoid Button8_Click (object sender, EventArgs e)

{if (TextBox11. Text == «» || TextBox13. Text == « «||TextBox12. Text==»»)

{. Text = «Заполните все поля»;

}

{id = Convert. ToInt32 (Request. QueryString [«id»].ToString());con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();cmd = new SqlCommand («INSERT INTO club_Price (PR_TURID, PR_NAME, PR_RMID, PR_NIGHT, PR_PRICE, PP_ID) VALUES (@trid,@name,@rm,@night, @price, @pp)», con);. Parameters. AddWithValue («@trid», id. ToString());. Parameters. AddWithValue («@name», TextBox11. Text. ToString());. Parameters. AddWithValue («@rm», DropDownList2. SelectedValue. ToString());. Parameters. AddWithValue («@night», TextBox13. Text. ToString());. Parameters. AddWithValue («@price», TextBox12. Text. ToString());. Parameters. AddWithValue («@pp», DropDownList1. SelectedValue. ToString());. ExecuteNonQuery();. Close();. DataBind();. Text = «»;. Text = «»;. Text = «»;. Text = «»;. Text = «»;. Text = «Добавлено»;. ClearSelection();

}

}

// Сохранениеvoid Button10_Click (object sender, EventArgs e)

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();(int i = 0; i < GridView4. Rows. Count; i++)

{cmd = new SqlCommand («UPDATE club_Price SET PR_NAME=@name, PR_RMID=@rm, PR_NIGHT=@night, PR_PRICE=@price WHERE (PR_ID = @id)», con);

. Parameters. AddWithValue («@id», ((Label) GridView4. Rows[i].Cells[0].FindControl («Label1»)).Text. ToString());. Parameters. AddWithValue («@name», ((TextBox) GridView4. Rows[i].Cells[0].FindControl («TextBox14»)).Text. ToString());. Parameters. AddWithValue («@night», ((TextBox) GridView4. Rows[i].Cells[0].FindControl («TextBox15»)).Text. ToString());. Parameters. AddWithValue («@price», ((TextBox) GridView4. Rows[i].Cells[0].FindControl («TextBox16»)).Text. ToString());. Parameters. AddWithValue («@rm», ((DropDownList) GridView4. Rows[i].Cells[0].FindControl («DropDownList3»)).SelectedValue. ToString());. ExecuteNonQuery();

}. Close();. DataBind();. Text = «Сохранено»;

}

// Удалениеvoid Button9_Click (object sender, EventArgs e)

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();(int i = 0; i < GridView4. Rows. Count; i++)

{(((CheckBox) GridView4. Rows[i].Cells[0].FindControl («CheckBox4»)).Checked == true)

{

cmd = new SqlCommand («DELETE FROM club_Price WHERE (PR_ID = @id)», con);. Parameters. AddWithValue («@id», ((Label) GridView4. Rows[i].Cells[0].FindControl («Label1»)).Text. ToString());. ExecuteNonQuery();

}

}. Close();. DataBind();. Text= «Удалено»;

}

// Добавление дополнительных цен на доп услугиvoid Button11_Click (object sender, EventArgs e)

{if (TextBox17. Text == «» || TextBox19. Text == «»)

{. Text = «Заполните все поля»;

}

{

id = Convert. ToInt32 (Request. QueryString [«id»].ToString());con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();cmd = new SqlCommand («INSERT INTO club_DopPrice (DP_TURID, DP_NAME, DP_RTKEY, DP_BY, DP_PRICE) VALUES (@trid,@name,@rt,@by, @price)», con);. Parameters. AddWithValue («@trid», id. ToString());. Parameters. AddWithValue («@name», TextBox17. Text. ToString());. Parameters. AddWithValue («@rt», DropDownList5. SelectedValue. ToString());. Parameters. AddWithValue («@price», TextBox19. Text. ToString());. Parameters. AddWithValue («@by», DropDownList4. SelectedValue. ToString());. ExecuteNonQuery();. Close();. DataBind();. Text = «»;. Text = «»;. Text = «»;. Text = «Добавлено»;. ClearSelection();. ClearSelection();

}

}

// Сохранениеvoid Button12_Click (object sender, EventArgs e)

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();(int i = 0; i < GridView5. Rows. Count; i++)

{cmd = new SqlCommand («UPDATE club_DopPrice SET DP_NAME=@name, DP_RTKEY=@rt, DP_BY=@by, DP_PRICE=@price WHERE (DP_ID = @id)», con);

. Parameters. AddWithValue («@id», ((Label) GridView5. Rows[i].Cells[0].FindControl («Label5»)).Text. ToString());. Parameters. AddWithValue («@name», ((TextBox) GridView5. Rows[i].Cells[0].FindControl («TextBox18»)).Text. ToString());. Parameters. AddWithValue («@rt», ((DropDownList) GridView5. Rows[i].Cells[0].FindControl («DropDownList7»)).SelectedValue. ToString());. Parameters. AddWithValue («@price», ((TextBox) GridView5. Rows[i].Cells[0].FindControl («TextBox20»)).Text. ToString());. Parameters. AddWithValue («@by», ((DropDownList) GridView5. Rows[i].Cells[0].FindControl («DropDownList44»)).SelectedValue. ToString());

. ExecuteNonQuery();

}. Close();. DataBind();. Text = «Изменения сохранены»;

}

// Удалениеvoid Button13_Click (object sender, EventArgs e)

{

con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();(int i = 0; i < GridView5. Rows. Count; i++)

{(((CheckBox) GridView5. Rows[i].Cells[0].FindControl («CheckBox5»)).Checked == true)

{

cmd = new SqlCommand («DELETE FROM club_DopPrice WHERE (DP_ID = @id)», con);. Parameters. AddWithValue («@id», ((Label) GridView5. Rows[i].Cells[0].FindControl («Label5»)).Text. ToString());. ExecuteNonQuery();

}

}. Close();. DataBind();. Text= «Удалено»;

}

// Сохранениеvoid Button14_Click (object sender, EventArgs e)

{(DropDownList6. SelectedValue. ToString() == «0»). Text = «Введите значение валюты»;

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«club1ConnectionString»].ConnectionString);. Open();f = 0;(CheckBox6. Checked == true)= 1;cmd = new SqlCommand («UPDATE club_Tours SET TUR_RTKEY=@rt, TUR_BYROOM=@byroom WHERE (TUR_ID = @id)», con);. Parameters. AddWithValue («@id», Request. QueryString [«id»].ToString());. Parameters. AddWithValue («@rt», DropDownList6. SelectedValue. ToString());. Parameters. AddWithValue («@byroom», f. ToString());. ExecuteNonQuery();. Close();. Text = «»;. Text = «Сохранено»;

}

}

}

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

using System;System. Data;System. Configuration;System. Collections;System. Web;System. Web. Security;System. Web.UI;System. Web.UI. WebControls;System. Web.UI. WebControls. WebParts;System. Web.UI. HtmlControls;System. Data. SqlClient;

partial class page: System. Web.UI. Page

{void Page_Load (object sender, EventArgs e)

{(! IsPostBack)

{

{id = 0;

{= Convert. ToInt32 (Request. QueryString [«id»].ToString());

}

{= 0;. Redirect («default.aspx»);

}

dateHeader = new DateTime();= DateTime. Now;. AppendHeader («Last-Modified:», dateHeader. ToString («r»));

con = new SqlConnection (ConfigurationManager. ConnectionStrings [«clubConnectionString»].ConnectionString);. Open();

SqlCommand cmd = new SqlCommand («SELECT TUR_NAME, TUR_DESCBIG, TUR_ACTIV FROM club_Tours WHERE (TUR_ID =» + id. ToString() +»)», con);reader = cmd. ExecuteReader();(reader. Read())

{(Convert. ToBoolean (reader[2].ToString()) == true)

{. Text = reader[0].ToString();. Text = reader[0].ToString();. Text = reader[1].ToString();= reader[0].ToString();

. Content = reader[0].ToString();. Content = reader[0].ToString();

}

{. Redirect («default.aspx»);

}

}. Close();

. Close();

}

{

}

}

}void DropDownList1_SelectedIndexChanged (object sender, EventArgs e)

{. DataBind();

}void GridView2_DataBound (object sender, EventArgs e)

{

}

void RadioButton1_CheckedChanged (object sender, EventArgs e)

{pr = 0;col = 0;colnight = 0;(int i = 0; i < GridView1. Rows. Count; i++)

{(((RadioButton) GridView1. Rows[i].Cells[0].FindControl («RadioButton1»)).Checked == true)

{= Convert. ToInt32 (((Label) GridView1. Rows[i].FindControl («Label1»)).Text. ToString());= Convert. ToInt32 (((Label) GridView1. Rows[i].FindControl («Label2»)).Text. ToString());= Convert. ToInt32 (((Label) GridView1. Rows[i].FindControl («Label3»)).Text. ToString());

}

}

//Label2. Text = pr. ToString();. SelectParameters [«id»].DefaultValue = Request. QueryString [«id»].ToString();. DataBind();con = new SqlConnection (ConfigurationManager. ConnectionStrings [«samaraConnectionString»].ConnectionString);. Open();

(int i = 0; i < GridView2. Rows. Count; i++)

{by =Convert. ToInt32 (((Label) GridView2. Rows[i].FindControl («Label2»)).Text. ToString());val = Convert. ToInt32 (((Label) GridView2. Rows[i].FindControl («Label4»)).Text. ToString());Price = Convert. ToInt32 (((Label) GridView2. Rows[i].FindControl («Label3»)).Text. ToString());(by == 0)= Price * col;if (by == 1)= Price * col * (colnight + 1);Price = Price * col * colnight;

((Label) GridView2. Rows[i].FindControl («Label3»)).Text = Price. ToString();cmd = new SqlCommand («SELECT RA_CODE FROM dbo. Rates WHERE (ra_key="+val. ToString()+»)», con);reader = cmd. ExecuteReader();(reader. Read())

{

((Label) GridView2. Rows[i].FindControl («Label4»)).Text = reader[0].ToString();

}. Close();

}

. Close();

}void Button1_Click (object sender, EventArgs e)

{con = new SqlConnection (ConfigurationManager. ConnectionStrings [«clubConnectionString»].ConnectionString);. Open();cmd = new SqlCommand («SELECT TUR_ByRoom, TUR_RTKEY FROM club_Tours WHERE (TUR_ID =» + Request. QueryString [«id»].ToString() +»)», con);reader= cmd. ExecuteReader();byroom = 0;rtkey = 0;(reader. Read())

{(Convert. ToBoolean (reader[0].ToString()) == true)= 1;= Convert. ToInt32 (reader[1].ToString());

}. Close();. Close();conn = new SqlConnection (ConfigurationManager. ConnectionStrings [«samaraConnectionString»].ConnectionString);. Open();date = new DateTime();= Convert. ToDateTime (DateTime. Now. ToShortDateString());

cmdd = new SqlCommand («SELECT RC_COURSE, RC_RCOD2 FROM dbo. RealCourses WHERE (RC_DATEBEG = @date) AND (RC_RCOD1 = 'рб')», conn);. Parameters. AddWithValue («@date», date);readerr = cmdd. ExecuteReader();dol = 0;evro = 0;(readerr. Read())

{(readerr[1].ToString() == «$»)= Convert. ToDecimal (readerr[0]);(readerr[1].ToString() == «EU»)= Convert. ToDecimal (readerr[0]);

}

//Label2. Text += «dol - «+dol. ToString()+» evro - «+evro. ToString();. Close();col = 0;price1 = 0;(int i = 0; i < GridView1. Rows. Count; i++)

{(((RadioButton) GridView1. Rows[i].Cells[0].FindControl («RadioButton1»)).Checked == true)

{= Convert. ToInt32 (((Label) GridView1. Rows[i].FindControl («Label2»)).Text. ToString());= Convert. ToInt32 (((Label) GridView1. Rows[i].FindControl («Label4»)).Text. ToString());

}

}(rtkey == 1)= price1 * dol;(rtkey == 5)= price1 * evro;

(byroom == 0)= price1 * col;(int i = 0; i < GridView2. Rows. Count; i++)

{(((CheckBox) GridView2. Rows[i].Cells[0].FindControl («CheckBox1»)).Checked == true)

{(((Label) GridView2. Rows[i].FindControl («Label4»)).Text. ToString() == «$»)+= dol * Convert. ToInt32 (((Label) GridView2. Rows[i].FindControl («Label3»)).Text. ToString());(((Label) GridView2. Rows[i].FindControl («Label4»)).Text. ToString() == «EU»)+= evro * Convert. ToInt32 (((Label) GridView2. Rows[i].FindControl («Label3»)).Text. ToString());

}

}. Text = price1. ToString (@ "#,#0.00;»)+» руб.»;. Close();

}

}

Похожие работы на - Разработка сайта туристической компании

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!