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

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

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

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

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

Имя поля

Тип

Описание

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

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

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

Таблица 2.14.

Имя поля

Тип

Описание

TD_ID

int

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

TD_TURID

int

Ключ тура

TD_DATE

datetime

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

15) Структура таблицы 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

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

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

Таблица 2.16.

Имя поля

Тип

Описание

TP_ID

int

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

TP_NAME

varchar(150)

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

TP_ACTIV

bit

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

17) Структура таблицы 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

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

TUR_CNID

int

Ключ страны

TUR_BEST

bit

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

TUR_URL

varchar(255)

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

TUR_DATE

datetime

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

TUR_ACTIV

bit

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

TUR_RTKEY

int

Ключ валюты

TUR_ByRoom

bit

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

21) Структура таблицы 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-85

E-mail: dn@samaraintour.ru

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

Ludmila 0634 437824 выдан 17.07.2009

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

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

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

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

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

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

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

Цена: 78461 руб.

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

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

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

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

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

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

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

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

3. НДФЛ -13 %;

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

5. Накладные расходы (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 ПЭВМ поэтому:

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

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

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

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

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

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

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

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

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

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Статья 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 необходимые значения, получим:

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

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

Заключение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Приложение

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

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

using System;

using System. Data;

using System. Configuration;

using System. Collections;

using System. Web;

using System. Web. Security;

using System. Web.UI;

//using System. Web.UI. WebControls;

using System. Web.UI. WebControls. WebParts;

using System. Web.UI. HtmlControls;

using System. Data. SqlClient;

using System.IO;

using System. ComponentModel;

using System. Drawing;

using System. Web. SessionState;

using System. Drawing. Imaging;

using System. Drawing. Drawing2D;

public partial class touredit: System. Web.UI. Page

{

public Boolean filePr (string fileName)

{

// ПРОВЕРКА НА СУЩЕСТВОВАНИЕ ФАЛА

string[] AllFiles;

AllFiles = Directory. GetFiles (Request. MapPath (»../photos») + «\\»);

bool flag1 = false;

for (int i = 0; i <= AllFiles. GetUpperBound(0); i++) // хм, а загружены ли уже такие?

{

AllFiles[i] = Path. GetFileName (AllFiles[i]);

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

{

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

flag1 = true;

break;

}

}

return flag1;

}

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

{

string[] AllFiles;

AllFiles = Directory. GetFiles (Request. MapPath (»../photos») + «\\»);

bool flag1 = false;

for (int i = 0; i <= AllFiles. GetUpperBound(0); i++) // хм, а загружены ли уже такие?

{

AllFiles[i] = Path. GetFileName (AllFiles[i]);

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

{

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

flag1 = true;

break;

}

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

{

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

flag1 = true;

break;

}

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

{

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

flag1 = true;

break;

}

}

return flag1;

}

protected void Page_Load (object sender, EventArgs e)

{

int id = 0;

try

{

id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

Button1. Enabled = true;

Label1. Text = «»;

}

catch

{

id = 0;

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

Button1. Enabled = false;

}

try

{

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

con. Open();

if (! IsPostBack)

{

int 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)

SqlCommand 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);

SqlDataReader readerN = cmdN. ExecuteReader();

while (readerN. Read())

{

TextBox1. Text = readerN[0].ToString(); // Название

TextBox2. Text = readerN[1].ToString(); // Краткое описание

FCKeditor1. Value = readerN[2].ToString(); // Полное описание

TextBox4. Text = readerN[6].ToString(); // Адрес URL

if (readerN[4].ToString()!= «»)

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

// активность

if (Convert. ToBoolean (readerN[7].ToString()) == true)

CheckBox1. Checked = true;

else

CheckBox1. Checked = false;

// лучшие

if (Convert. ToBoolean (readerN[5].ToString()) == true)

CheckBox2. Checked = true;

else

CheckBox2. Checked = false;

}

readerN. Close();

DropDownList1. DataBind();

if (CountryID!= 0)

DropDownList1. Items. FindByValue (CountryID. ToString()).Selected = true;

GridView2. DataBind();

string PathPhoto = «»;

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

{

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

{

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;

TABLE1. Visible = false;

TABLE2. Visible = true;

}

else

{

TABLE1. Visible = true;

TABLE2. Visible = false;

GridView2. Visible = false;

}

}

bool flag = false;

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

{

flag = false;

SqlCommand 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);

SqlDataReader readerF = cmdF. ExecuteReader();

while (readerF. Read())

{

flag = true;

}

readerF. Close();

if (flag == true)

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

else

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

}

}

con. Close();

}

catch

{

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

Button1. Enabled = false;

}

}

protected void Button1_Click (object sender, EventArgs e)

{

Label1. Text = «»;

int id = 0;

int CountryID = 0;

int TypeID = 0;

int Activ = 0;

int Best = 0;

try

{

id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

Button1. Enabled = true;

Label1. Text = «»;

}

catch

{

id = 0;

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

Button1. Enabled = false;

}

if (id!= 0)

{

try

{

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

con. Open();

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

CountryID = Convert. ToInt32 (DropDownList1. SelectedValue);

// активность

if (CheckBox1. Checked)

Activ = 1;

else

Activ = 0;

// на главную

if (CheckBox2. Checked)

Best = 1;

else

Best = 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)

SqlCommand 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);

cmd. CommandType = CommandType. Text;

cmd. Parameters. AddWithValue («@name», TextBox1. Text);

cmd. Parameters. AddWithValue («@dsm», TextBox2. Text);

cmd. Parameters. AddWithValue («@dbig», FCKeditor1. Value);

cmd. Parameters. AddWithValue («@cn», CountryID. ToString());

cmd. Parameters. AddWithValue («@bs», Best. ToString());

cmd. Parameters. AddWithValue («@url», TextBox4. Text);

cmd. Parameters. AddWithValue («@act», Activ. ToString());

cmd. ExecuteNonQuery();

bool flag = false;

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

{

flag = false;

SqlCommand 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);

SqlDataReader readerF = cmdF. ExecuteReader();

while (readerF. Read())

{

flag = true;

}

readerF. Close();

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

{

// удаляем

SqlCommand 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);

cmdD. ExecuteNonQuery();

}

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

{

// добавляем

SqlCommand 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);

cmdIn. ExecuteNonQuery();

}

}

con. Close();

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

}

catch

{

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

}

}

}

protected void Button3_Click (object sender, EventArgs e)

{

int id = 0;

string PathPhoto = «»;

Label1. Text = «»;

try

{

id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

Button1. Enabled = true;

Label1. Text = «»;

}

catch

{

id = 0;

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

Button1. Enabled = false;

}

if (id!= 0)

{

try

{

string strFileNameSm = FileSmall. PostedFile. FileName; // большое фото

strFileNameSm = System.IO. Path. GetFileName(strFileNameSm);

string strFileNameSm1 = System.IO. Path. GetFileNameWithoutExtension(strFileNameSm);

string NameSmPhoto = «»;

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

{

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

}

else

{

// случайное число

Random rnd = new Random();

int irand = rnd. Next (1000, 10000);

// путь

strFileNameSm = «systemfile» + irand. ToString() +».jpg»;

FileSmall. PostedFile. SaveAs (Request. MapPath (»../photos») + «\\» + strFileNameSm);

// название фото

NameSmPhoto = id + «_tour_sm.jpg»;

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

bool flag1 = false;

flag1 = filePr(NameSmPhoto);

int s = 0;

while (flag1)

{

s++;

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

flag1 = filePr(NameSmPhoto);

}

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

// размеры

int imgWdSm = 0;

int imgHdSm = 0;

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

if (b. Width > b. Height)

{

imgWdSm = 135;

if (b. Width > 135)

{

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

}

else

{

imgWdSm = b. Width;

imgHdSm = b. Height;

}

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

}

else

{

imgHdSm = 135;

if (b. Height > 135)

{

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

}

else

{

imgWdSm = b. Width;

imgHdSm = b. Height;

}

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

}

// рисуем

Graphics g;

Image img = null;

b. MakeTransparent();

img = Image. FromFile (Request. MapPath (»../photos») + «\\» + strFileNameSm); // .GetThumbnailImage (imgWdSm, imgHdSm, null, IntPtr. Zero);

g = Graphics. FromImage(b);

g. SmoothingMode = SmoothingMode. HighQuality;

g. DrawImage (img, 0, 0, imgWdSm, imgHdSm);

Bitmap bbb = new Bitmap(b);

Bitmap bb = new Bitmap (imgWdSm, imgHdSm);

bb. SetResolution (72, 72);

g = Graphics. FromImage(bb);

bbb. SetResolution (72, 72);

g. DrawImageUnscaled (bbb, 0, 0);

// сохраняем

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

// делаем запись в базу

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

con. Open();

SqlCommand cmd = new SqlCommand («UPDATE club_Tours SET TUR_PHOTOSMALL = @foto WHERE (TUR_ID =» + id. ToString() +»)», con);

cmd. CommandType = CommandType. Text;

cmd. Parameters. AddWithValue («@foto», NameSmPhoto. ToString());

cmd. ExecuteNonQuery();

con. Close();

g. Flush();

g. Dispose();

img. Dispose();

bbb. Dispose();

bb. Dispose();

b. Dispose();

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

GridView2. DataBind();

GridView2. Visible = true;

TABLE1. Visible = false;

TABLE2. 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;

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

}

}

catch

{

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

Button1. Enabled = false;

}

}

}

protected void Button4_Click (object sender, EventArgs e)

{

int id = 0;

string NamePhoto = «»;

Label1. Text = «»;

try

{

id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

Button1. Enabled = true;

Label1. Text = «»;

}

catch

{

id = 0;

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

Button1. Enabled = false;

}

try

{

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

{

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

{

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

// делаем запись в базу

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

con. Open();

SqlCommand cmd = new SqlCommand («UPDATE club_Tours SET TUR_PHOTOSMALL = @foto WHERE (TUR_ID =» + id. ToString() +»)», con);

cmd. CommandType = CommandType. Text;

cmd. Parameters. AddWithValue («@foto», «»);

cmd. ExecuteNonQuery();

con. Close();

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

GridView2. DataBind();

TABLE1. Visible = true;

TABLE2. Visible = false;

GridView2. Visible = false;

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

}

}

}

catch

{

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

Button1. Enabled = false;

}

}

private bool filePr()

{

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

}

protected void Button2_Click (object sender, EventArgs e)

{

int id = 0;

string NamePhoto = «»;

Label1. Text = «»;

try

{

id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

Button1. Enabled = true;

Label1. Text = «»;

}

catch

{

id = 0;

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

Button1. Enabled = false;

}

try

{

string strFileNameBg = FileBig. PostedFile. FileName; // большое фото

strFileNameBg = System.IO. Path. GetFileName(strFileNameBg);

string strFileNameBg1 = System.IO. Path. GetFileNameWithoutExtension(strFileNameBg);

int idF = 0;

string NameSmPhoto = «»;

string NameMedPhoto = «»;

string NameBigPhoto = «»;

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

{

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

}

else

{

Random rnd = new Random();

int irand = rnd. Next (1000, 10000);

strFileNameBg = «systemfile» + irand. ToString() +».jpg»;

FileBig. PostedFile. SaveAs (Request. MapPath (»../photos») + «\\» + strFileNameBg);

// делаем пустую запись в базу

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

con. Open();

SqlCommand cmd = new SqlCommand();

cmd. Connection = con;

cmd. CommandText = «INSERT INTO club_Photos (FOTO_TURID) VALUES (» + id. ToString() +»)\r SELECT @@identity»;

using (SqlDataReader dr = cmd. ExecuteReader (CommandBehavior. CloseConnection))

{

if (dr. Read())

idF = Convert. ToInt32 (dr. GetDecimal(0));

}

con. Close();

NameSmPhoto = idF + «_prod_sm.jpg»;

NameMedPhoto = idF + «_prod_med.jpg»;

NameBigPhoto = idF + «_prod_big.jpg»;

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

bool flag1 = false;

flag1 = filePrO (NameSmPhoto, NameMedPhoto, NameBigPhoto);

int s = 0;

while (flag1)

{

s++;

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

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

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

flag1 = filePrO (NameSmPhoto, NameMedPhoto, NameBigPhoto);

}

int imgWdSm = 0;

int imgHdSm = 0;

int imgWdMd = 0;

int imgHdMd = 0;

int imgWdBg = 0;

int imgHdBg = 0;

// загружаем в битмапы

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

Bitmap b1 = new Bitmap (Request. MapPath (»../photos») + «\\» + strFileNameBg);

Bitmap b2 = new Bitmap (Request. MapPath (»../photos») + «\\» + strFileNameBg);

// определяем размеры фото

if (b. Width > b. Height)

{

imgWdSm = 140;

imgWdMd = 200;

imgWdBg = 500;

// маленькая

if (b. Width > 140)

{

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

}

else

{

imgWdSm = b. Width;

imgHdSm = b. Height;

}

// средняя

if (b. Width > 200)

{

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

}

else

{

imgWdMd = b. Width;

imgHdMd = b. Height;

}

// большая

if (b. Width > 500)

{

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

}

else

{

imgWdBg = b. Width;

imgHdBg = b. Height;

}

}

else

{

imgHdSm = 140;

imgHdMd = 200;

imgHdBg = 500;

// маленькая

if (b. Height > 140)

{

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

}

else

{

imgWdSm = b. Width;

imgHdSm = b. Height;

}

// средняя

if (b. Height > 200)

{

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

}

else

{

imgWdMd = b. Width;

imgHdMd = b. Height;

}

// большая

if (b. Height > 500)

{

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

}

else

{

imgWdBg = b. Width;

imgHdBg = b. Height;

}

}

Graphics g;

Graphics g1;

Graphics g2;

Image img = null;

b. MakeTransparent();

b1. MakeTransparent();

b2. MakeTransparent();

img = Image. FromFile (Request. MapPath (»../photos») + «\\» + strFileNameBg); // .GetThumbnailImage (imgWdSm, imgHdSm, null, IntPtr. Zero);

g = Graphics. FromImage(b);

g1 = Graphics. FromImage(b1);

g2 = Graphics. FromImage(b2);

g. SmoothingMode = SmoothingMode. HighQuality;

g1. SmoothingMode = SmoothingMode. HighQuality;

g2. SmoothingMode = SmoothingMode. HighQuality;

g. DrawImage (img, 0, 0, imgWdSm, imgHdSm);

g1. DrawImage (img, 0, 0, imgWdMd, imgHdMd);

g2. DrawImage (img, 0, 0, imgWdBg, imgHdBg);

Bitmap bbb = new Bitmap(b);

Bitmap bbb1 = new Bitmap(b1);

Bitmap bbb2 = new Bitmap(b2);

Bitmap bb = new Bitmap (imgWdSm, imgHdSm);

Bitmap bb1 = new Bitmap (imgWdMd, imgHdMd);

Bitmap bb2 = new Bitmap (imgWdBg, imgHdBg);

bb. SetResolution (72, 72);

bb1. SetResolution (72, 72);

bb2. SetResolution (72, 72);

g = Graphics. FromImage(bb);

g1 = Graphics. FromImage(bb1);

g2 = Graphics. FromImage(bb2);

bbb. SetResolution (72, 72);

bbb1. SetResolution (72, 72);

bbb2. SetResolution (72, 72);

g. DrawImageUnscaled (bbb, 0, 0);

g1. DrawImageUnscaled (bbb1, 0, 0);

g2. DrawImageUnscaled (bbb2, 0, 0);

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

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

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

SqlCommand 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);

cmd1. CommandType = CommandType. Text;

cmd1. Parameters. AddWithValue («@sm», NameSmPhoto. ToString());

cmd1. Parameters. AddWithValue («@med», NameMedPhoto. ToString());

cmd1. Parameters. AddWithValue («@big», NameBigPhoto. ToString());

cmd1. Parameters. AddWithValue («@name», TextBox5. Text);

con. Open();

cmd1. ExecuteNonQuery();

con. Close();

g. Flush();

g. Dispose();

img. Dispose();

bbb. Dispose();

bb. Dispose();

b. Dispose();

g1. Flush();

g1. Dispose();

bbb1. Dispose();

bb1. Dispose();

b1. Dispose();

g2. Flush();

g2. Dispose();

bbb2. Dispose();

bb2. Dispose();

b2. Dispose();

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

GridView1. DataBind();

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

TextBox5. Text = «»;

}

}

catch

{

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

Button1. Enabled = false;

}

}

protected void Button6_Click (object sender, EventArgs e)

{

int id = 0;

try

{

id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

Button1. Enabled = true;

Label1. Text = «»;

}

catch

{

id = 0;

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

Button1. Enabled = false;

}

try

{

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

{

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

con. Open();

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

{

SqlCommand 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);

cmd. CommandType = CommandType. Text;

cmd. Parameters. AddWithValue («@name», ((System. Web.UI. WebControls. TextBox) GridView1. Rows[i].Cells[0].FindControl («TextBox7»)).Text. ToString());

cmd. ExecuteNonQuery();

}

con. Close();

}

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

GridView1. DataBind();

}

catch

{

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

Button1. Enabled = false;

}

}

protected void Button5_Click (object sender, EventArgs e)

{

int id = 0;

int Del = 0;

try

{

id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

Button1. Enabled = true;

Label1. Text = «»;

}

catch

{

id = 0;

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

Button1. Enabled = false;

}

try

{

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

con. Open();

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

{

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

{

Del = 1;

}

else

{

Del = 0;

}

if (Del == 1)

{

SqlCommand 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);

cmdD. ExecuteNonQuery();

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

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

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

}

}

con. Close();

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

GridView1. DataBind();

}

catch

{

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

Button1. Enabled = false;

}

}

protected void Button7_Click (object sender, EventArgs e)

{

int id = 0;

try

{

id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

Button1. Enabled = true;

Label1. Text = «»;

}

catch

{

id = 0;

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

Button1. Enabled = false;

}

try

{

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

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

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

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

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

con. Open();

// удалить все в туре фото

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

{

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

{

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

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

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

SqlCommand 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);

cmdD. ExecuteNonQuery();

}

}

// удалить маленькое фото

string NamePhoto = «»;

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

{

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

{

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

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

}

}

// удалить связку с типом туров

SqlCommand cmdTT = new SqlCommand («DELETE FROM club_TourTypeKey WHERE (TK_TURID =» + id. ToString() +»)», con);

cmdTT. ExecuteNonQuery();

// удалить тур

SqlCommand cmdDT = new SqlCommand («DELETE FROM club_Tours WHERE (TUR_ID =» + id. ToString() +»)», con);

cmdDT. ExecuteNonQuery();

con. Close();

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

Response. Redirect («tours.aspx»);

}

catch

{

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

Button1. Enabled = false;

}

}

}

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

using System;

using System. Data;

using System. Configuration;

using System. Collections;

using System. Web;

using System. Web. Security;

using System. Web.UI;

using System. Web.UI. WebControls;

using System. Web.UI. WebControls. WebParts;

using System. Web.UI. HtmlControls;

using System. Data. SqlClient;

public partial class Default2: System. Web.UI. Page

{

protected void Page_Load (object sender, EventArgs e)

{

if (! IsPostBack)

{

int id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

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

con. Open();

DropDownList6. DataBind();

DropDownList6. Items. Add (new ListItem («Выберите значение», «0»));

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

SqlDataReader rd2 = com1. ExecuteReader();

while (rd2. Read())

{

DropDownList6. ClearSelection();

DropDownList6. Items. FindByValue (rd2 [0].ToString()).Selected=true;

if (Convert. ToBoolean (rd2 [1].ToString()) == true)

CheckBox6. Checked = true;

else CheckBox6. Checked = false;

Label6. Text = rd2 [2].ToString();

}

ListBind();

}

Label3. Text = «»;

Label4. Text = «»;

}

private void ListBind()

{

int id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

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

con. Open();

SqlCommand com1 = new SqlCommand («SELECT PP_ID, PP_DATEFROM, PP_DATETO FROM club_PeriodPrice WHERE (PP_TRKEY =» + id. ToString() +»)», con);

SqlDataReader rd2 = com1. ExecuteReader();

DropDownList1. Items. Clear();

DropDownList1. Items. Add (new ListItem («Выберите значение», «0»));

while (rd2. Read())

{

DateTime dt = Convert. ToDateTime (rd2 [1].ToString());

DateTime dt1 = Convert. ToDateTime (rd2 [2].ToString());

DropDownList1. Items. Add (new ListItem (dt. ToShortDateString() + «-» + dt1. ToShortDateString(), rd2 [0].ToString()));

}

rd2. Close();

con. Close();

}

protected void Calendar1_SelectionChanged (object sender, EventArgs e)

{

DateTime dt = Calendar1. SelectedDate;

// выбираем значение переменной id из адресной страны

int id = Convert. ToInt32 (Request. QueryString [«id»].ToString());

// описываем соединение с базой данных

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

con. Open();

//sql_запрос, выбирающий дату для данного тура если она уже есть в базе

SqlCommand com2 = new SqlCommand («SELECT TD_DATE FROM club_TourDates WHERE (TD_TURID = @id) and (td_date=@date)», con);

// передача параметров в забров

com2. Parameters. AddWithValue («@id», id. ToString());


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

  • Процесс разработки Web-сайта. Состав и содержание работ по созданию подсистемы. Требования к Web-сайту. Определение сущностей модели базы данных. Разработка логической модели базы данных. Реализация PHP-скриптов и заполнение базы данных Web-сайта.

    дипломная работа [8,2 M], добавлен 29.06.2011

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

    курсовая работа [1,4 M], добавлен 24.12.2012

  • Актуальность создания фирменного web-сайта. Разработка, внедрение web-сайта под названием "Удачная постройка". Анализ существующих программных решений, выбор инструментальных средств разработки. Архитектура сайта, структура данных. Тестирование и отладка.

    дипломная работа [4,7 M], добавлен 19.01.2017

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

    дипломная работа [3,0 M], добавлен 19.01.2017

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

    дипломная работа [394,3 K], добавлен 12.07.2010

  • Сайт – единая система организационных, технических, программных и информационных средств. Использование автоматизированных сайтов в деятельности организаций. Этапы разработки сайта HTML для компании "Lidia Travel": верстка сайта, наполнение контентом.

    отчет по практике [773,3 K], добавлен 05.02.2015

  • Постановка задачи разработки сайта компании "ОргТехСервис". Выбор методики проектирование сайта, разработка проекта, тестирование и отладка. Расчет показателей надежности Интернет-услуг. Порядок разработки интерфейсов взаимодействия с пользователем.

    контрольная работа [1,5 M], добавлен 22.10.2014

  • Анализ предметной области. Обзор инструментов Web-аналитики для развития бизнеса в Интернете. Построение моделей бизнес-процессов компании. Учет поискового трафика. Элементы управления доступом. Обработка и хранение данных. Видимость сайта в поисковиках.

    дипломная работа [1,4 M], добавлен 27.09.2016

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

    курсовая работа [2,8 M], добавлен 20.12.2012

  • Основные технологии разработки ресурсов Интернет. Процесс разработки веб-сайта. Понятие Web-сайта и классификация Web-сайтов. Основные этапы разработки Web-сайта. Использование HTML, CSS, JavaScript, FLASH, PHP и реляционной базы данных MySQL.

    презентация [1,3 M], добавлен 28.11.2015

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