Рефераты - Афоризмы - Словари
Русские, белорусские и английские сочинения
Русские и белорусские изложения

Разработка автоматизированной системы оценки кредитоспособности физических лиц (АС "CreditAnalysis")

Работа из раздела: «Программирование, компьютеры и кибернетика»

/

Введение

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

Расчетно-пояснительная записка включает техническое задание, конструкторскую, технологическую, экономическую и эргономическую части, а также приложение.

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

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

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

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

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

Содержание

Техническое задание

Конструкторская часть

1. Общетехническое обоснование разработки

1.1 Описание предметной области

1.2 Функциональные задачи приложения

1.3 Анализ аналогов и прототипов

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

2.1 Выявление потребителей и источников информации

2.2 Сравнительный анализ средств разработки системы

2.3 Выбор системы разработки

2.4 Проектирование базы данных

2.5 Описание инфологической модели предметной области

2.6 Даталогическая модель

Технологическая часть

1. Разработка интерфейсов взаимодействия пользователя с системой

1.1 Разработка экранных форм (страниц)

1.2 Разработка графа диалога

2. Руководство пользователя

2.1. Открытие приложения

2.2 Постраничная навигация

2.3 Отправка письма по E-mail

3. Программа и методика испытаний

3.1 Объект испытаний

3.2 Цель испытания

3.3 Состав предъявляемой документации

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

3.5 Порядок проведения испытаний

Экономическая часть

1. Смета затрат на создание программного изделия

2. Обоснование сметы затрат

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

2.2 Расчет затрат на оборудование

2.3 Расчет затрат на услуги сторонних организаций

2.4 Расчет затрат на оплату труда

2.5 Расчет отчислений на социальные нужды

2.6 Расчет затрат на накладные расходы

2.7 Расчет себестоимости

2.8 Расчет прибыли

2.9 Расчет цены

2.10 Расчет цены с учетом НДС

Эргономическая часть

1. Введение

2. Обобщённые эргономические характеристики

2.1 Расчёт яркостно - контрастных характеристик

2.2 Расчёт пространственных характеристик

2.3 Расчёт временных характеристик

2.4 Расчет информационных характеристик

3. Частные эргономические характеристики

3.1 Оценка информационной насыщенн

3.2 Оценка цветовой гаммы

Заключение

Список используемой литературы

Приложение

1. Листинг основных модулей программы

1.1 Разметка веб-страниц

1.2 Дизайн веб-страниц

1.3 Функциональные модули

Техническое задание

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

Автоматизированная система оценки кредитоспособности физических лиц (АС “CreditAnalysis”).

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

Основанием для разработки является задание на бакалаврскую работу, утвержденное кафедрой «Автоматизированные системы обработки информации и управления» МГТУ им. Н.Э. Баумана.

Исполнитель

Исполнителем является студент МГТУ им. Н.Э.Баумана группы ИУ 5-82 Галкин Михаил Андреевич.

Назначение и цель разработки

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

Содержание работы

Задачи, подлежащие решению

Анализ предметной области и создание ее формального описания

Определение функций, выполняемых системой;

Разработка инфологической и даталогической моделей системы;

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

Создание базы данных;

Составление структурной схемы программы;

Разработка интерфейса взаимодействия программы с пользователем;

Разработка алгоритма работы программы;

Разработка графа диалога и набора страниц;

Оформление документации.

Требования к программному изделию

Требования к функциональным характеристикам:

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

Содержать макет сайта Банка, с которого будет осуществляться отправка заявки на кредит.

Содержать постраничную навигацию по макету сайта.

Реализовывать возможность заполнения клиентом онлайн - заявки на кредит.

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

Осуществлять принятие решения о возможности выдачи кредита по введённой заявке

Анализ данных должен происходить на основе весовых данных, заданных в системе.

База данных должна иметь встроенное хранилище информации о текущих клиентах Банка, на основе которых система сможет делать вывод о ценности того или иного параметра.

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

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

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

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

Требования к интерфейсу пользователя:

Клиент должен иметь возможность:

Зайти на веб-страницу с онлайн - заявкой на кредит.

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

Уведомляться об успешной обработке заполненной заявки.

Получать на E-mail письмо с вынесенным решением и дальнейшими инструкциями для получения кредита.

Требования к составу программных компонентов

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

ОС Microsoft Windows XP или старше;

MS SQL Server 2005 Express Edition или более высокой редакции;

Требования к архитектуре системы

Система должна включать в себя:

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

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

приложение, ответственное за последовательное выполнение функций, хранящихся в БД, и рассылку E-mail сообщений с результатами.

Требования к базе данных

Автоматизированная система использует СУБД SQL Server 2005 для хранения следующей информации:

поступившие заявки от клиентов

текущие или бывшие клиенты Банка

чёрный список клиентов

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

процедуры, осуществляющие вычисления, анализ и принятие решения по заявке.

Требования к входным и выходным данным

Входные данные

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

Выходные данные

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

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

Приложение должно функционировать на IBM-совместимой ЭВМ следующей конфигурации:

процессор семейства Intel Pentium IV и выше;

оперативная память не менее 1 Гбайт;

дисковая подсистема со свободным дисковым пространством

не менее 2 Гбайт;

цветной монитор с поддержкой SVGA-режимов;

стандартная русифицированная клавиатура;

манипулятор мышь.

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

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

автоматизированный информационный кредитоспособность банк

Этапы разработки

Этапы разработки

Срок начала

Срок выполнения

1

Разработка технического задания

07.02.2011

12.02.2011

2

Разработка эскизного проекта

14.02.2011

26.02.2011

3

Разработка технического проекта

28.02.2011

12.03.2011

4

Разработка программы

14.03.2011

02.04.2011

5

Отладка программы

04.04.2011

16.04.2011

6

Разработка программной документации

18.04.2011

07.05.2011

7

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

09.05.2011

14.05.2011

8

Защита выпускной работы

До 02.07.2011

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

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

Техническое задание;

Расчетно-пояснительная записка;

Руководство пользователя;

Программа и методика испытаний;

Копия листов графической части.

Порядок приема

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

Дополнительные условия

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

Конструкторская часть

1. Общетехническое обоснование разработки

1.1 Описание предметной области

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

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

Дальнейшая разработка модели предметной области описана в разделе «Проектирование базы данных».

1.2 Функциональные задачи приложения

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

· О созданных заявках;

· О текущих клиентах банка

· Процедуры, реализующие алгоритмы принятия решений;

· Результаты принятия решения

Реализация принятия решения по возможности выдаче клиенту кредита:

· Принятие решение на основе данных, введённых через форму

· Анализ при принятии решения на основе текущих данных в системе.

Обработка данных и вывод информации для администратора базы данных.

· Добавление данных;

· Просмотр данных, оставленных пользователями сайта;

(Все данные указанные действия администратор обязан совершать через СУБД)

1.3 Анализ аналогов и прототипов

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

https://www.citibank.ru/russia/loan/rus/form.htm - онлайн-заявка на получение кредита физическим лицом Банка «CitiBank». Данную страницу можно считать основным аналогом разрабатываемой программы. Страница имеет простой и понятный интерфейс, вопросы сформулированы максимально корректно и доступно. Основным недостатком данной системы является высокая длительность принятие решения, т.к. для его получения системой подразумевается обязательное участие человека.

https://www.uniastrum.ru/personal/crediting/customer/form/ - страница с онлайн-заявкой на получение потребительского кредита Банка «Юниаструм Банк». Рассматриваемая страница имеет дружественный, понятный и грамотно структурированный интерфейс, но это высокое удобство влечёт за собой его медленную работу и достаточно долгую загрузку данных. Также сама анкета содержит много вопросов, требующих детального и очень подробного ответа, что также может оттолкнуть потенциального клиента Банка.

http://www.vtb24.ru/personal/loans/personal/cash/preliminary-request/ - страница, содержащая онлайн-заявку на получение кредита наличными средствами в Банке «ВТБ24». Рассматриваемая анкета является очень краткой и содержит ряд не самых понятных для потенциального клиента вопросов. Система, по сути, реализует лишь сохранение контактных данных клиента для обратной связи и не имеет компоненты принятия решения.

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

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

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

Таблица 1. Сравнительный анализ аналогов с разрабатываемой системой.

Параметры сравнения

Варианты сравнения

CreditAnalysis

CitiBank

Юниаструм Банк

ВТБ24

1. Простота организации интерфейса

Оч.хор.

Отл.

Оч.хор.

Хор.

2. Качество анкеты, предлагаемой клиенту для заполнения

Оч.хор.

Отл.

Хор.

Удовл.

3. Оперативность работы системы

Отл.

Оч.хор.

Хор.

Отл.

4. Прозрачность механизмов принятия решения

Отл.

Хор.

Оч.хор.

Хор.

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

Качественный показатель

Отл.

Оч.хор.

Хор.

Удовл.

Посредств.

Плохо

Оч. плохо

Неуд.

Количественный показатель (нормированная шкала)

1

0,9

0,8

0,6

0,5

0,4

0,2

0

Проведение нормализации и определение весовых коэффициентов приводит к следующим результатам:

Таблица 2. Итоговые результаты сравнительного анализа аналогов системы

Параметры сравнения

б

Варианты сравнения

CreditAnalysis

CitiBank

Юниаструм Банк

ВТБ24

1. Простота организации интерфейса

0.1

0,9

1

0,9

0,8

2. Качество анкеты, предлагаемой клиенту для заполнения

0.4

0,9

1

0,8

0,6

3. Оперативность работы системы

0.3

1

0,9

0,8

1

4. Прозрачность механизмов принятия решения

0.2

1

0,8

0,9

0,8

ИТОГО:

1

0,95

0,93

0,83

0,78

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

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

2.1 Выявление потребителей и источников информации.

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

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

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

2.2 Сравнительный анализ средств разработки системы

Были рассмотрены три варианта средств разработки системы. Сравнительный анализ вариантов приведен в таблице 3.

Таблица 3. Сравнительный анализ средств разработки системы

MS Visual Studio + MS SQL Server

MS Visual Studio + MS Access

Delphi +

MS Access

Опыт работы

1 год

3 месяца

1,5 год

Распространенность

отличная

хороший

удовл.

Подддержка фирм-производителей

отличная

хороший

отличная

Совместимость компонентов

отличная

удовл.

хорошая

Набор функциональных возможностей

отличный

хороший

удовл.

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

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

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

Таблица 4.Результаты сравнительного анализа и выбор средств разработки системы

б

MS Visual Studio + MS SQL Server

MS Visual Studio + MS Access

Delphi +

MS Access

Опыт работы

0.2

0.9

0.7

1

Распространенность

0.1

1

0.8

0.6

Подддержка фирм-производителей

0.1

1

0.8

1

Совместимость компонентов

0.3

1

0.6

0.8

Набор функциональных возможностей

0.3

1

0.8

0.6

У

0.98

0.72

0.78

По результатам анализы был выбран вариант: MS Visual Studio + MS SQL Server.

2.3 Выбор среды разработки

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

В качестве системы разработки и исполняемого модуля выбрана среда программирования Microsoft Visual Studio 2008. Данная среда разработки имеет следующие положительные характеристики:

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

2. Включает локальный сервер ASP.NET Development Server для проверки работоспособности web-приложения без установки постороннего ПО.

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

4. Предоставление бесплатной лицензии на использование Microsoft Visual Studio 2008 для студентов технических вузов в рамках программы “Dreamspark” от компании Microsoft.

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

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

2.4 Проектирование базы данных

В качестве СУБД была выбрана Microsoft SQL Server 2005, т.к. она в полной мере отвечает требованиям разрабатываемого продукта. Выбранная СУБД хорошо совместима с средой разрабротки и поддерживает язык запросов Transact-SQL.

2.5 Описание инфологической модели предметной области

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

Описание сущностей и их атрибутов

Сущность «Заявка»

Атрибуты:

· ID - Первичный ключ

· ID Регион

· ID Тип занятости

· Фамилия

· Имя

· Отчество

· Дата рождения

· ID Гражданство

· Телефон по месту проживания

· Мобильный телефон

· E-mail

· Сумма кредита

· Срок кредита

· ID Пол

· Номер паспорта

· Дата выдачи паспорта

· Кем выдан паспорт

· Индекс по месту проживания

· Область по месту проживания

· Город по месту проживания

· Адрес по месту проживания

· Время фактического проживания

· ID Тип недвижимости

· Проживание совпадает с регистрацией

· Индекс по месту регистрации

· Область по месту регистрации

· Город по месту регистрации

· Адрес по месту регистрации

· Телефон по месту регистрации

· ID Семейное положение

· ID Образование

· ID Наличие детей

· ID Тип компании

· Название компании

· ИНН компании

· ОГРН компании

· Должность

· Рабочий телефон

· Индекс по месту работы

· Область по месту работы

· Город по месту работы

· Адрес по месту работы

· ID Количество сотрудников

· Срок работы на текущем месте

· Срок работы на прошлом месте

· Доход

· ID Наличие автомобиля

· ID Путешествия

· ID Кредитные карты

· ID Невыплаченные кредиты

· Решение по заявке

· Отправка письма

· Текст письма

Сущность «Автомобиль»

Атрибуты:

· ID - Первичный ключ

· Тип автомобиля

· Вес

Сущность «Год»

Атрибуты:

· ID - Первичный ключ

· Номер года

· Вес

Сущность «Дети»

Атрибуты:

· ID - Первичный ключ

· Количество детей

· Вес

Сущность «Кредитные карты»

Атрибуты:

· ID - Первичный ключ

· Наличие

· Вес

Сущность «Тип компании»

Атрибуты:

· ID - Первичный ключ

· Тип компании

· Вес

Сущность «Количество сотрудников»

Атрибуты:

· ID - Первичный ключ

· Количество

· Вес

Сущность «Невыплаченные кредиты»

Атрибуты:

· ID - Первичный ключ

· Наличие

· Вес

Сущность «Образование»

Атрибуты:

· ID - Первичный ключ

· Тип образования

· Вес

Сущность «Семейное положение»

Атрибуты:

· ID - Первичный ключ

· Семейное положение

· Вес

Сущность «Недвижимость»

Атрибуты:

· ID - Первичный ключ

· Тип недвижимости

· Вес

Сущность «Гражданство»

Атрибуты:

· ID - Первичный ключ

· Тип гражданства

· Вес

Сущность «Пол»

Атрибуты:

· ID - Первичный ключ

· Пол

· Вес

Сущность «Регион»

Атрибуты:

· ID - Первичный ключ

· Регион

· Вес

Сущность «Путешествия»

Атрибуты:

· ID - Первичный ключ

· Наличие

· Вес

Сущность «Занятость»

Атрибуты:

· ID - Первичный ключ

· Тип занятости

· Вес

Сущность «Клиент»

Атрибуты:

· ID - Первичный ключ

· Фамилия

· Имя

· Отчество

· Дата рождения

· Пол

· Гражданство

· Номер паспорта

· Детали выдачи паспорта

· Область по месту регистрации

· Город по месту регистрации

· Адрес по месту регистрации

· Область по месту проживания

· Город по месту проживания

· Адрес по месту проживания

· ID Офис Банка

· ID Менеджер Банка

· Категория качества

Сущность «Офис Банка»

Атрибуты:

· ID - Первичный ключ

· Название офиса

· Контактная информация

Сущность «Менеджер Банка»

Атрибуты:

· ID Логин в системе - Первичный ключ

· ФИО

· Должность

Сущность «Кредитный продукт»

Атрибуты:

· ID - Первичный ключ

· Название

· ID Тип графика

· Обеспеченность залогом

· Обеспеченность поручительством

· ID Условия

Сущность «Тип графика»

Атрибуты:

· ID - Первичный ключ

· Название

Сущность «Условия»

Атрибуты:

· ID - Первичный ключ

· ID Валюта

· Минимальная сумма

· Максимальная сумма

· Минимальный срок

· Максимальный срок

· Процентная ставка

· Процент пени

· ID База расчёта пени

Сущность «Валюта»

Атрибуты:

· ID - Первичный ключ

· Название

Сущность «База расчёта пени»

Атрибуты:

· ID - Первичный ключ

· Тип базы

Сущность «Чёрный список»

Атрибуты:

· ID - Первичный ключ

· Фамилия

· Имя

· Отчество

· Дата рождения

· Обоснование

Описание связей

Связь «В собственности»

Объединяет сущности «Заявка» и «Автомобиль».

Тип связи - М:1

Связь «Родился»

Объединяет сущности «Заявка» и «Год».

Тип связи - М:1

Связь «Имеет»

Объединяет сущности «Заявка» и «Дети».

Тип связи - М:1

Связь «Оформлены»

Объединяет сущности «Заявка» и «Кредитные карты».

Тип связи - М:1

Связь «Занимается»

Объединяет сущности «Заявка» и «Тип компании».

Тип связи - М:1

Связь «Коллеги»

Объединяет сущности «Заявка» и «Количество сотрудников».

Тип связи - М:1

Связь «Должен»

Объединяет сущности «Заявка» и «Невыплаченные кредиты».

Тип связи - М:1

Связь «Учился»

Объединяет сущности «Заявка» и «Образование».

Тип связи - М:1

Связь «Семья»

Объединяет сущности «Заявка» и «Семейное положение».

Тип связи - М:1

Связь «Проживает в»

Объединяет сущности «Заявка» и «Недвижимость».

Тип связи - М:1

Связь «Является гражданином»

Объединяет сущности «Заявка» и «Гражданство».

Тип связи - М:1

Связь «Является»

Объединяет сущности «Заявка» и «Пол».

Тип связи - М:1

Связь «Территориально проживает»

Объединяет сущности «Заявка» и «Регион».

Тип связи - М:1

Связь «Наличие»

Объединяет сущности «Заявка» и «Путешествия».

Тип связи - М:1

Связь «Работает»

Объединяет сущности «Заявка» и «Занятость».

Тип связи - М:1

Связь «Обслуживается в»

Объединяет сущности «Клиент» и «Офис».

Тип связи - М:1

Связь «Обслуживается у»

Объединяет сущности «Клиент» и «Менеджер».

Тип связи - М:1

Связь «Строится»

Объединяет сущности «Кредитный продукт» и «Тип графика».

Тип связи - М:М

Связь «Обуславливается»

Объединяет сущности «Кредитный продукт» и «Условия».

Тип связи - М:М

Связь «Рассчитывается»

Объединяет сущности «Условия» и «Валюта».

Тип связи - М:1

Связь «Начисляется»

Объединяет сущности «Условия» и «База расчёта пени».

Тип связи - М:1

2.6 Даталогическая модель

На основе инфологической модели, описанной в пункте 2.2.5 данного документа, была построена даталогическая модель для реляционной СУБД Microsoft SQL Server 2005 Management Studio.

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

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

Структура даталогической модели представлена на листе 1 в графической части раздела «Приложение» данной пояснительной записки.

Request

PK

ID

Int

RegionID

Int

WorkformID

Int

Secname

Nvarchar(100)

Firstname

Nvarchar(100)

Thirdname

Nvarchar(100)

Bdate

Datetime

FvcountryID

Int

Telnum

Nvarchar(20)

Cellnum

Nvarchar(20)

Email

Nvarchar(50)

Crsum

Int

Wnterm

Int

GenderID

Int

Paspnum

Nvarchar(50)

Dpasp

Datetime

Infpasp

Nvarchar(300)

Findex

Nvarchar(20)

Farea

Nvarchar(50)

Fcity

Nvarchar(80)

Faddress

Nvarchar(200)

Ftime

Int

FtypeID

Int

Add_ident

Int

Rindex

Nvarchar(20)

Rarea

Nvarchar(50)

Rcity

Nvarchar(80)

Raddress

Nvarchar(200)

Telreg

Nvarchar(20)

FamposID

Int

EducationID

Int

ChildrenID

Int

ComptypeID

Int

Compname

Nvarchar(200)

Compinn

Nvarchar(20)

Compogrn

Nvarchar(50)

Comppos

Nvarchar(100)

Worknum

Nvarchar(20)

Windex

Nvarchar(20)

Warea

Nvarchar(50)

Wcity

Nvarchar(80)

Waddress

Nvarchar(200)

CompamountID

Int

Wtermpres

Int

Wtermlast

Int

Wpaym

Int

AutomobID

Int

TravelID

Int

CommitmentID

Int

DebtloanID

Int

Offer

Nvarchar(10)

Message

Nvarchar(10)

MessageText

Nvarchar(50000)

Automob

PK

ID

Int

AutomobNM

Nvarchar(100)

Weight

Int

Ayear

PK

ID

Int

AyearNM

Nvarchar(10)

Weight

Int

Commitment

PK

ID

Int

CommitmentNM

Nvarchar(10)

Weight

Int

Comptype

PK

ID

Int

ComptypeNM

Nvarchar(200)

Weight

Int

Compamount

PK

ID

Int

CompamountNM

Nvarchar(50)

Weight

Int

Debtloan

PK

ID

Int

DebtloanNM

Nvarchar(10)

Weight

Int

Education

PK

ID

Int

EducationNM

Nvarchar(50)

Weight

Int

Fampos

PK

ID

Int

FamposNM

Nvarchar(30)

Weight

Int

Ftype

PK

ID

Int

FtypeNM

Nvarchar(100)

Weight

Int

Fvcountry

PK

ID

Int

FvcountryNM

Nvarchar(50)

Weight

Int

Gender

PK

ID

Int

GenderNM

Nvarchar(10)

Weight

Int

Region

PK

ID

Int

RegionNM

Nvarchar(80)

Weight

Int

Ftype

PK

ID

Int

FtypeNM

Nvarchar(100)

Weight

Int

Travel

PK

ID

Int

TravelNM

Nvarchar(10)

Weight

Int

Workform

PK

ID

Int

WorkformNM

Nvarchar(80)

Weight

Int

His_customer

PK

ID

Int

Secname

Nvarchar(300)

Firstname

Nvarchar(200)

Thirdname

Nvarchar(200)

BirthDate

Datetime

Gender

Nvarchar(50)

Fvcountry

Nvarchar(300)

Paspnum

Nvarchar(100)

Paspstart

Nvarchar(500)

Rregion

Nvarchar(100)

Rcity

Nvarchar(100)

Raddress

Nvarchar(300)

Fregion

Nvarchar(100)

Fcity

Nvarchar(100)

Faddress

Nvarchar(300)

OfficeID

Int

ManagerID

Nvarchar(50)

Category

Int

His_office

PK

ID

Int

OfficeNM

Nvarchar(300)

ContInf

Nvarchar(500)

His_manager

PK

Login

Nvarchar(50)

FullNM

Nvarchar(300)

Position

Nvarchar(300)

His_product

PK

ProductNum

Int

Prodname

Nvarchar(100)

SchedtypeID

Nvarchar(20)

SecCol

Nvarchar(5)

SecSur

Nvarchar(5)

ProdConditID

Nvarchar(20)

His_schedtype

PK

ID

Int

SchedtypeNM

Nvarchar(50)

His_prodcondit

PK

ID

Int

CurrencyID

Nvarchar(10)

MinSum

Money

MaxSum

Money

MinTerms

Int

MaxTerms

Int

Rate

Real

Pen

Real

PenbaseID

Nvarchar(10)

His_currency

PK

ID

Nvarchar(10)

CurrencyNM

Nvarchar(50)

His_penbase

PK

ID

Nvarchar(10)

PenbaseNM

Nvarchar(50)

His_blacklist

PK

ID

Int

SecondName

Nvarchar(100)

FirstName

Nvarchar(100)

ThirdName

Nvarchar(100)

BirthDate

Datetime

Reason

Nvarchar(500)

Технологическая часть

1. Разработка интерфейсов взаимодействия пользователя с системой

1.1 Разработка экранных форм (страниц)

Главная (родительская) страница (index.htm)

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

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

Рисунок 1. Заголовок и меню родительской страницы

· Меню - Содержит ссылки на разделы: «Главная страница», «О нас», «Наши партнёры», «Контакты».

· Меню навигации - Находится внизу страницы и позволяет оперативно перемещаться по сайту. Является удобным инструментом для просмотра длинных страниц.

Рисунок 2. Меню навигации внизу страницы

· Подменю слева - Кнопка перехода на страницу с онлайн-заявкой.

Рисунок 3. Подменю с кнопкой перехода к онлайн-заявке

Страница с онлайн-заявкой (default.aspx)

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

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

Рисунок 4. Заполняемая анкета-заявка

· В анкете реализована система подсказок пользователю для корректного заполнения полей.

Рисунок 5. Подсказки по заполнению

· После корректного заполнения всех полей отправка данных происходит по соответствующей кнопке.

Рисунок 6. Создание заявки.

Получение письма с решением

После обработки заявки система генерирует письмо с результатом решения и отправляет его потенциальному клиенту путём e-mail сообщения. На данном заключительном этапе взаимодействия пользователя с системой происходит через интерфейс почтового клиента или через веб-страницу почтового провайдера.

Рисунок 7. Получение письма через веб-портал почтового провайдера Mail.ru.

1.2 Разработка графа диалога

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

2. Руководство пользователя

2.1 Открытие приложения

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

При открытии в браузере отображается стартовая страница приложение Default.aspx. На макете сайта Банка пользователь может перейти по следующим страницам:

1. «Главная страница»

2. «О нас»

3. «Наши партнёры»

4. «Контакты»

5. «Онлайн - заявка на получение кредита»

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

2.2 Постраничная навигация

«Главная страница»

На главной странице содержится приветственная информация для пользователей, зашедших на сайт.

«О нас»

На странице «О нас» содержится краткая информация о деятельности Банка.

«Наши партнёры»

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

«Контакты»

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

«Онлайн - заявка на получение кредита»

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

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

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

В некоторых полях обязательно определённое корректное заполнение (Например, поле “E-mail” должно иметь определённую структуру, в поле «Сумма кредита» необходимо вводить цифры, но не буквы). Поэтому при попытке отправить заявку с некорректно заполненными полями, система выдаст соответствующее сообщение.

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

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

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

2.3 Отправка письма по E-mail

· Как только система произведёт все необходимые операции и будет принято предварительное кредитное решение по заявке, пользователю на указанный в заявке E-mail будет отправлено соответствующее письмо от имени Банка, в котором будет содержаться информация о принятом решении.

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

· В случае принятия отрицательного решения пользователю придёт письмо с отказом.

3. Программа и методика испытаний

3.1 Объект испытаний

Автоматизированная система оценки кредитоспособности физических лиц (АС “CreditAnalysis”).

3.2 Цель испытаний

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

3.3 Состав предъявляемой документации

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

1. Техническое задание;

2. Руководство пользователя;

3. Программа и методика испытаний;

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

Задачи, подлежащие решению

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

Требования к программной документации

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

3.5 Порядок проведения испытаний

Состав и структура технических и программных средств

Программный продукт разработан для использования под управлением операционной системы Microsoft Windows XP (или более поздних версий). Система разработана в Microsoft Visual Studio на языке C#, следовательно, для просмотра исходных кодов необходимо наличие данной среды разработки. База данных разработана на MS SQL Server 2008. Необходимые технические характеристики ПК объявлены в пункте «Требования к техническому обеспечению» технического задания.

Последовательность испытаний

Испытание системы должно проводиться в следующей последовательности:

Установка и настройка системы на персональном компьютере или сервере

Запуск системы

Проведение испытаний

Завершение работы

Последовательность проведения испытаний:

№ пункта ТЗ

№ п.п.

Выполняемые действия

Ожидаемый результат

5.2.1.1

1

Открытие страницы index.htm

Вход на главную страницу сайта, с которой начинается работы с макетом сайта. (Рисунок 1)

5.2.1.2

2

Нажатие кнопок с именами страниц.

Переход по страницам, содержащим различную краткую справочную информацию о Банке, с помощью гиперссылок. (Рисунок 2,3,4)

5.2.1.2

3

Выбор пунктов меню «Навигация» внизу страницы

Переход по страницам, содержащим различную краткую справочную информацию о Банке, с помощью гиперссылок, указанных в меню «Навигация». (Рисунок 2,3,4)

5.2.1.3

4

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

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

5.2.1.4

5

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

Появление сообщения об ошибке в соответствующем поле. Данные не будут сохранены. (Рисунок 6)

5.2.1.4

6

Попытка отправить заявку при последовательном заполнении полей с несоблюдением корректности заполнения (Например, в поле «Сумма кредита» ввести буквы)

Появление сообщения об ошибке в соответствующем поле. Данные не будут сохранены. (Рисунок 7)

5.2.1.4

7

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

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

5.2.1.4

5.2.1.5

5.2.1.6

5.2.1.7

5.2.1.8

5.2.1.9

5.2.1.10

5.2.1.11

8

При полностью корректном вводе данных нажатие кнопки «Создать заявку».

Появление сообщения об успешной обработке введённой заявки.

Занесение введённых пользователем данных в базу. Запуск приложения, осуществляющего следующие действия: последовательных запуск всех процедур пересчёта весовых коэффициентов в базе; На основе полученных после пересчёта параметров произведение анализ введённых пользователем данных, принятие решение по заявке; Подбор кредитного продукта в случае положительного решения; Формирование текста письма; Отправка письма с решением по E-mail, указанному в заявке. (Рисунок 9)

5.2.1.5

5.2.1.9

5.2.1.10

9

Проверка доставки письма с решением

На почту пользователя поступает сообщение с предварительным решением по выдаче кредита, текст которого зависит от результатов анализа введённых пользователем данных. (Рисунок 10,11,12,13)

3.6 Приложение. Изображения результатов испытаний

Рисунок 1. «Главная страница»

Рисунок 2. «О нас»

Рисунок 3. «Наши партнёры»

Рисунок 4. «Контакты»

Рисунок 5. «Онлайн заявка на получение кредита»

Рисунок 6. Сообщение об ошибке при незаполнении обязательных полей

Рисунок 7. Сообщение об ошибке при некорректном заполнении полей

Рисунок 8. Сообщение об ошибке при вводе несовершеннолетнего возраста

Рисунок 9. Успешная обработка заявки

Рисунок 10. Получение письма по E-mail

Рисунок 11. Положительное решение с рекомендацией продукта

Рисунок 12. Положительное решение с предложением индивидуальных условий

Рисунок 13. Отрицательное решение по заявке

Экономическая часть

1. Смета затрат на создание программного изделия

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

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

1. расходные материалы;

2. затраты на оборудование;

3. затраты на оплату труда;

4. обобщенный социальный налог;

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

6. услуги сторонних организаций;

7. прочие расходы;

Статьи затрат

Статья затрат

Сумма статьи (руб.)

1

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

2 950

2

Затраты на оборудование

7 500

3

Услуги сторонних организаций

730

4

Затраты на оплату труда

40 500

5

Отчисления на социальные нужды

10 530

6

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

6 221

Себестоимость

68 431

Прибыль

16 423,44

Цена

84 854,44

Цена (включая НДС)

100 128,2

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

2. Обоснование сметы затрат

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

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

Материалы

Стоимость (руб.)

Бумага SvetoCopy A4/80 г/м (500 листов)

150

Картридж для принтера HP LaserJet 1018

2 500

Канцтовары (ручки, тетради, карандаши)

100

Самоучитель «Microsoft SQL Server 2005»

200

ИТОГО:

2 950

2.2 Расчет затрат на оборудование

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

,

где

- покупная цена вычислительной техники: = 30 000,

- время использования ЭВМ для разработки данного программного продукта в месяцах: t ЭВМ = 9 мес.

5 лет - срок амортизации вычислительной техники.

Тогда:

Затраты на ремонт вычислительной техники составляют 10% от стоимости и равны:

Получаем, что затраты на оборудование с учетом его ремонта составляют:

2.3 Расчет затрат на услуги сторонних организаций

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

Работа

Стоимость (руб.)

Вывод графической части на плоттере

480

Переплет расчетно-пояснительной записки

250

ИТОГО:

730

Расчет стоимости печати графических листов формата А1:

где

цена печати одного листа формата А1;

количество листов.

2.4 Расчет затрат на оплату труда

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

где

n - количество разработчиков программы (1 разработчик),

- заработная плата программиста на расчётный период 9000 руб/мес. Так как программист работает на 0,5 ставки, то его зарплата составляет 4500 руб/мес.

время разработки (9 мес).

Таким образом, =45009 = 40 500 руб.

2.5 Расчет отчислений на социальные нужды

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

Расчет производится по формуле:

где

коэффициент отчислений на социальные нужды;

заработная плата (руб.)

Коэффициент отчислений на социальные нужды складывается из следующих отчислений:

Статья отчислений

Размер (в %)

Отчисления на социальное страхование

2,9

Отчисления в пенсионный фонд

20

Отчисления в фонд обязательного медицинского страхования

3,1

ИТОГО:

26

Тогда, руб.

2.6 Расчет затрат на накладные расходы

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

Накладные расходы составляют 10% от стоимости работ.

Таким образом,

2.7 Расчет себестоимости

Себестоимость рассчитывается как сумма по всем вышеперечисленным статьям затрат и составляет:

2.8 Расчет прибыли.

Расчет прибыли производится исходя из нормы прибыли. Норма прибыли задана =20%

Расчет чистой прибыли (Пр) ведется с учетом налога на прибыль. Ставка налога на прибыль НП=20% от прибыли.

Налог на прибыль:

Н=Р·НП=13 686,2· 0,2=2 737,24 руб.

Итого прибыль составит:

Пр = Н+Р = 2 737,24+13 686,2=16 423,44 руб.

2.9 Расчет цены.

Цена рассчитывается как сумма себестоимости и прибыли:

2.10 Расчет цены с учетом НДС.

НДС составляет 18% от цены, следовательно:

Эргономическая часть

1. Введение

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

2. Обобщенные эргономические характеристики

Название группы характеристик

Рабочие значения характеристик

1.Яркостно-контрастные характеристики

Слепящая яркость Lсл = 225000 кд/м2

Яркость адаптации Lа = 101000 кд/м2

Яркость восприятия L = 60,5 кд/м2

Яркость фона прямая Lф = 403,3 кд/м2

Яркость фона обратная Lф = 9,07 кд/м2

2.Пространственные характеристики

Расстояние до экрана l = 0.4 0.8 м

Расстояние до экрана оптимальное lопт = 0.65 м

Угол зрения вертикальный = 17,9

Угол зрения горизонтальный = 23,9

Поле ясного зрения 3035.

3. Временные характеристики

Время зрительной фиксации tф = 0,5 с

Время информационного поиска tип = 3,5 с

Критическое время восприятия экрана tкр = 30 с

4. Информационные характеристики

2.1 Расчет яркостно-контрастных характеристик

Требуется рассчитать яркость (L, кд/м2), яркость прямого фона (Lпрф, кд/м2), яркость обратного фона (Lобф, кд/м2), контраст (K).

Расчет яркости L.

где

значение яркости экрана монитора.

где

S - площадь экрана;

угол между линией, проложенной от глаза к центру экрана, и линией визирования.

I - сила света, которая генерируется ЭЛТ.

, где

- световой поток, генерируемый средством отображения,

- телесный угол обзора экрана,

- плоский угол, соответствующий телесному углу .

Таким образом :

Lотр - значение яркости, отраженной поверхностью монитора,

, где

- коэффициент отражения поверхности экрана,

E - внешняя освещенность.

При расчете Lотр принимаются следующие допущения:

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

б) Источник света считается точечным.

, где

Iвн - сила света внешнего источника,

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

r - расстояние от точечного источника до центра экрана.

Таким образом, яркость экрана вычисляется по формуле:

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

S

r

1,5

24

30

0,056

45

0,1

500кд

Iвн находится из условия, что Iвн = 1кд - соответствует силе света в заданном направлении источника, испускающего монохроматическое излучение частотой 540*1012 Гц, сила излучения которого в этом направлении составляет 1/683 Вт/ср.

Полученное значение L = 60,5 кд/ удовлетворяет требованию: находится в диапазоне (10-1000) кд/.

Расчет яркости фона .

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

где

Lоб - яркость объекта,

Lпр - яркость предмета (в данном случае Lоб и Lпр принимаются равными L),

Kоб - величина контраста объекта,

Kпр - величина контраста предмета.

Возьмём оптимальный вариант, К = 0,85 .

Исходя из этого, рассчитаем прямую и обратную яркость фона:

кд/м2 ,

кд/м2 .

Диапазон значений яркости адаптации: La = 101000 кд/м2.

Абсолютно слепящая яркость: Lсл = 225000 кд/м2.

2.2 Расчет пространственных характеристик

Требуется рассчитать оптимальное расстояние до экрана (lопт, м), объем зрительного восприятия (aопт), а также поля зрения (вертикальное (в) и горизонтальное (г)).

Значения величин l и lопт (расстояние до экрана и оптимальное расстояние до экрана) были установлены в соответствие с ГОСТом, 0.40.8 м и 0.65 м соответственно.

Значения полей зрения по вертикали - и горизонтали - определяются на основании значений размеров экрана (А = 0.205 м, В = 0.275 м) и расстояния до экрана l = 0.65 м.

Получаем:

,

.

Таким образом, экран может находиться в поле ясного зрения, которое составляет 3035.

2.3 Расчет временных характеристик

Требуется рассчитать время экспозиции информационной модели (tеxp, с), время информационного поиска (tип, с).

, где

E - общий объем элементов информационной модели (число буквенно-цифровых символов), E=300.

a - объем зрительного восприятия, a=72.

M() - число элементов информационной модели с заданным для поиска набором параметров, M()=5.

tф - время зрительной фиксации кадра, зависит от сложности воспринимаемой информации. tf=0.5 сек

fсм = 2 Гц.

Тогда, сек.

Время экспозиции tеxp=30 сек

2.4 Расчет информационных характеристик

Необходимо выполнение условия:

техн воспр, где

техн - общее количество адресуемых точек - технически разрешимых элементов изображения.

воспр - общее число воспринимаемых разрешаемых элементов в кадре.

техн = (A*MB)*(B*MГ), где

А, В - габариты экрана,

MB, MГ - разрешающие способности по вертикали и горизонтали соответственно.

MB = 600 пиксел, MГ = 800 пиксел.

техн = (0,205 * 600) * (0,275 * 800) = 123 * 220 = 27060 элем.

, где

= 13'- разрешающая способность глаза.

< 417312, условие выполняется.

Пороговые значения угловых размеров для простых элементов установлены в интервале 15'18', что соответствует размеру hэ = 2.8 3.4 мм.

Пороговые значения угловых размеров для средних по сложности элементов установлены в интервале 21'26', что соответствует размеру hэ = 4 5 мм.

Пороговые значения угловых размеров для сложных элементов установлены в интервале 35' 40', что соответствует размеру hэ =6,6 7,6 мм.

3. Частные эргономические характеристики

№ кадра

Оценка информационной насыщенности

Оценка цветовой гаммы

Буквенно-цифровая информация

Векторная информация

Цветовой контраст

Пригоден / непригоден

1

300

-

Средний процент ошибки цветоразличения - 0%, hоп = 2 мм.

Пригоден

2

-

720 знаков/м

Средний процент ошибки цветоразличения - 4%,

hоп = 2.5 мм.

Пригоден

3

35

480 знаков/м

Средний процент ошибки цветоразличения - 6%,

hоп = 2.5 мм.

Пригоден

3.1 Оценка информационной насыщенности

Информационная пропускная способность глаза человека-оператора =16 бит/с была выбрана из интервала 470 бит/с. Тогда с учетом допущения, что 1 символ = 1 бит, и tкр= 30 с, получаем, что максимально допустимая информационная насыщенность равна 480 символам.

Для графических изображений (сложных знаков) максимально допустимая информационная насыщенность составляет 1000 1200 зн/ м2.

3.2 Оценка цветовой гаммы

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

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

При уровне внешней засветки Е = 50 130 люкс оперативные пороговые размеры элементов информационной модели для надежного восприятия цветовой информации должны составлять для первого кадра 10'11', или, для значений пространственных характеристик п. 1.2. настоящего документа, hоп = 1.9 2.1 мм, поскольку при проектировании элементов кадров информационной модели применялся серый цвет. Аналогично, для второго и третьего кадров оперативные пороговые размеры составляют 13' 14', соответственно, hоп = 2.5 2.6 мм.

Заключение

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

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

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

· Простота организации интерфейса

· Качество анкеты, предлагаемой клиенту для заполнения

· Оперативность работы системы

· Прозрачность механизмов принятия решения

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

В организационно экономической части составлена смета затрат на разработку программного продукта «CreditAnalysis» с учетом уровня цен и окладов на 01.06.2011г. и введения «Единого социального налога» в размере 26% согласно закону № 212-ФЗ от 24.07.2009

Цена программного продукта «CreditAnalysis», рассчитанная как сумма значений себестоимости и прибыли составляет Ц = S+P = (руб.).

Отпускная цена с учетом НДС составляет Цотп = 1,18*Ц = (руб.).

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

Список используемой литературы

1. В.И. Кузовлев, Ю.Н.Филиппович. Методические указания по выполнению выпускной работы бакалавра по специальности 'Информатика и вычислительная техника' для студентов кафедры ”Системы обработки информации и управления', М.: МГТУ им Н.Э. Баумана, 2005 г.

2. Григорьев Ю.А., Ревунков Г.И. Банки данных: Учеб. для вузов. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2002

3. О.Н. Евсеева, А. Б. Шамшев. Работа с базами данных на языке C#. Технология ADO.NET: учебное пособие, Ульяновск: УлГТУ, 2009. - 170 с.ISBN 978-5-9795-0475-9

4. Г. Бучек, ASP.NET - Учебный курс. - СПб.: Питер, 2002 г. - 512 с. - ил. ISBN 966-552-124-1.

5. Грубер М. -- «Понимание SQL», Москва, 1993г., 291 стр.

6. Интернет источники:

http://msdn.microsoft.com

http://css.manual.ru

Приложение

1. Листинг основных модулей программы

1.1 Разметка веб-страниц

Для разметки всех страниц макета сайта использовался шаблон родительской ASP страницы Default.aspx.

<%@ Page Language='C#' AutoEventWireup='true' CodeFile='Default.aspx.cs' Inherits='_Default' %>

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>

<html xmlns='http://www.w3.org/1999/xhtml'>

<head runat='server'>

<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>

<title>UniversityBank</title>

<link href='~/style.css' rel='stylesheet' type='text/css' />

<style type='text/css'>

.style1

{

color: #C0C0C0;

}

.style7

{

font-size: medium;

text-align: left;

font-weight: bold;

}

.style8

{

width: 280px;

height: 42px;

}

.style9

{

height: 42px;

}

.style10

{

width: 280px;

}

.style11

{

width: 801px;

}

.style12

{

width: 280px;

height: 137px;

}

.style13

{

height: 137px;

}

</style>

</head>

<body leftMargin='0' topMargin='0' marginwidth='0' marginheight='0'>

<table width='100%' height='100%' border='0' cellpadding='0' cellspacing='0'>

<tr>

<td height='1'><table width='100%' border='0' cellspacing='0' cellpadding='0'>

<tr>

<td height='5' colspan='2' background='images/bg_1.jpg'><img src='images/spacer.gif' width='1' height='5'></td>

</tr>

<tr>

<td width='248' height='62'><img src='images/men_1.jpg' width='248' height='62'></td>

<td background='images/bg_2.jpg'><table width='100%' border='0' cellpadding='0' cellspacing='0'>

<tr>

<td width='12'><img src='images/spacer.gif' width='12' height='1'></td>

<td width='34'><img src='images/logo.jpg' width='34' height='62'></td>

<td width='10'><img src='images/spacer.gif' width='10' height='1'></td>

<td class='logo'>UniversityBank</td>

</tr>

</table></td>

</tr>

<tr>

<td height='45' rowspan='2'><img src='images/men_2.jpg' width='248' height='45'></td>

<td height='39' background='images/bg_3.jpg'><table border='0' cellspacing='0' cellpadding='0'>

<tr>

<td height='1' colspan='16'><img src='images/spacer.gif' width='1' height='1'><div id='pr' style='position:absolute; width:500px; height:300px; z-index:1; left: -10000px; top: -10000px'><a href='http://anvision.com' title='software outsourcing, offshore outsourcing, it outsourcing'><h1>software outsourcing, offshore outsourcing, it outsourcing</h1></a><a href='http://jobsearch4.com' title='job search'><h1>job search</h1></a><a href='http://just-dating.net' title='online dating service'><h1>online dating service</h1></a><a href='http://realestatehawk.net' title='real estate listings'><h1>real estate listings</h1></a><a href='http://anvisionwebdesign.com' title='web design company, web design services'><h1>web design company, web design services</h1></a><a href='http://web-page-design.info' title='web page design'><h1>web page design</h1></a><a href='http://anvisionwebhosting.com/' title='web hosting provider, web hosting company'><h1>web hosting provider, web hosting company</h1></a><a href='http://anvisionwebtemplates.com' title='free web templates'><h1>free web templates</h1></a></div></td>

</tr>

<tr>

<td width='22'><img src='images/spacer.gif' width='22' height='1'></td>

<td><a href='index.htm' class='menu'>ГЛАВНАЯ СТРАНИЦА</a></td>

<td width='13'><img src='images/spacer.gif' width='13' height='1'></td>

<td width='9' height='38'><img src='images/e_1.jpg' width='9' height='38'></td>

<td width='13'><img src='images/spacer.gif' width='13' height='1'></td>

<td><a href='about.htm' class='menu'>О НАС</a></td>

<td width='13'><img src='images/spacer.gif' width='13' height='1'></td>

<td width='9' height='38'><img src='images/e_1.jpg' width='9' height='38'></td>

<td width='13'><img src='images/spacer.gif' width='13' height='1'></td>

<td><a href='partners.htm' class='menu'>НАШИ ПАРТНЁРЫ</a></td>

<td width='13'><img src='images/spacer.gif' width='13' height='1'></td>

<td width='9' height='38'><img src='images/e_1.jpg' width='9' height='38'></td>

<td width='13'><img src='images/spacer.gif' width='13' height='1'></td>

<td><a href='contact.htm' class='menu'>КОНТАКТЫ</a></td>

<td width='13'><img src='images/spacer.gif' width='13' height='1'></td>

<td width='9' height='38'><img src='images/e_1.jpg' width='9' height='38'></td>

</tr>

</table></td>

</tr>

<tr>

<td height='5'><img src='images/spacer.gif' width='1' height='5'></td>

</tr>

</table></td>

</tr>

<tr>

<td height='100%' valign='top'><table width='100%' border='0' cellspacing='0' cellpadding='0'>

<tr>

<td width='248' valign='top'><table width='100%' border='0' cellspacing='0' cellpadding='0'>

<tr>

<td><img src='images/men_3.jpg' width='248' height='110'></td>

</tr>

<tr>

<td height='2'><img src='images/spacer.gif' width='1' height='2'></td>

</tr>

<tr>

<td background='images/e_3.jpg' width='248' height='89' align='center'><a href='default.aspx'>Онлайн заявка на получение кредита</a></td>

</tr>

</table></td>

<td height='100%' valign='top'>

<form id='form1' runat='server'>

<table width='100%' border='0' cellspacing='0' cellpadding='0'>

<tr>

<td width='22' height='40' background='images/bg_4.jpg'><img src='images/spacer.gif' width='22' height='40'></td>

<td background='images/bg_4.jpg'><h1>Онлайн заявка на получение кредита </h1></td>

</tr>

<tr >

<td height='1' colspan='2' background='images/e_2.jpg'><img src='images/spacer.gif' width='4' height='1'></td>

</tr>

<tr>

<td height='22'><img src='images/spacer.gif' width='1' height='22'></td>

<td></td>

</tr>

<tr>

<td></td>

<td valign='top'><table width='100%' border='0' cellspacing='0' cellpadding='0'>

<tr>

<td width='4'><img src='images/spacer.gif' width='4' height='1'></td>

<td valign='top'><p>Заполните, пожалуйста, форму ниже</p>

<p>&nbsp;</p>

</td>

<td width='26'><img src='images/spacer.gif' width='26' height='1'></td>

</tr>

</table></td>

</tr>

<table>

<div>

</div>

<p class='style7'>

&nbsp;&nbsp;

Основная информация</p>

<tr>

<td align='right' class='style10'>Регион*:</td>

<td>

<asp:DropDownList ID='DropDownList5' runat='server'

DataSourceID='SqlDataSource1' DataTextField='RegionNM' DataValueField='ID'>

</asp:DropDownList>

<asp:Label ID='Label3' runat='server' style='color: #CC0000'></asp:Label>

<asp:SqlDataSource ID='SqlDataSource1' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString34 %>'

SelectCommand='SELECT * FROM [Region]'></asp:SqlDataSource>

</td>

</tr>

<tr>

<td align='right' class='style10'>Тип занятости*:</td>

<td>

<asp:DropDownList ID='DropDownList7' runat='server'

DataSourceID='SqlDataSource2' DataTextField='WorkformNM' DataValueField='ID'>

</asp:DropDownList>

<asp:Label ID='Label4' runat='server' style='color: #CC0000'></asp:Label>

<asp:SqlDataSource ID='SqlDataSource2' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString35 %>'

SelectCommand='SELECT * FROM [Workform]'></asp:SqlDataSource>

</td>

</tr>

<tr>

<td align='right' class='style10'>Фамилия*:</td>

<td>

<asp:TextBox ID='TextBox2' runat='server' Width='234px'></asp:TextBox>

<asp:Label ID='Label2' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Имя*:</td>

<td>

<asp:TextBox ID='TextBox3' runat='server'

Width='234px'></asp:TextBox>

<asp:Label ID='Label5' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Отчество*:</td>

<td>

<asp:TextBox ID='TextBox4' runat='server'

Width='234px'></asp:TextBox>

<asp:Label ID='Label6' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Дата рождения*:</td>

<td>

<asp:DropDownList ID='DropDownList1' runat='server'

>

<asp:ListItem></asp:ListItem>

<asp:ListItem>1</asp:ListItem>

<asp:ListItem>2</asp:ListItem>

<asp:ListItem>3</asp:ListItem>

<asp:ListItem>4</asp:ListItem>

<asp:ListItem>5</asp:ListItem>

<asp:ListItem>6</asp:ListItem>

<asp:ListItem>7</asp:ListItem>

<asp:ListItem>8</asp:ListItem>

<asp:ListItem>9</asp:ListItem>

<asp:ListItem>10</asp:ListItem>

<asp:ListItem>11</asp:ListItem>

<asp:ListItem>12</asp:ListItem>

<asp:ListItem>13</asp:ListItem>

<asp:ListItem>14</asp:ListItem>

<asp:ListItem>15</asp:ListItem>

<asp:ListItem>16</asp:ListItem>

<asp:ListItem>17</asp:ListItem>

<asp:ListItem>18</asp:ListItem>

<asp:ListItem>19</asp:ListItem>

<asp:ListItem>20</asp:ListItem>

<asp:ListItem>21</asp:ListItem>

<asp:ListItem>22</asp:ListItem>

<asp:ListItem>23</asp:ListItem>

<asp:ListItem>24</asp:ListItem>

<asp:ListItem>25</asp:ListItem>

<asp:ListItem>26</asp:ListItem>

<asp:ListItem>27</asp:ListItem>

<asp:ListItem>28</asp:ListItem>

<asp:ListItem>29</asp:ListItem>

<asp:ListItem>30</asp:ListItem>

<asp:ListItem>31</asp:ListItem>

</asp:DropDownList>

<asp:DropDownList ID='DropDownList2' runat='server'>

<asp:ListItem></asp:ListItem>

<asp:ListItem Value='1'>Январь</asp:ListItem>

<asp:ListItem Value='2'>Февраль</asp:ListItem>

<asp:ListItem Value='3'>Март</asp:ListItem>

<asp:ListItem Value='4'>Апрель</asp:ListItem>

<asp:ListItem Value='5'>Май</asp:ListItem>

<asp:ListItem Value='6'>Июнь</asp:ListItem>

<asp:ListItem Value='7'>Июль</asp:ListItem>

<asp:ListItem Value='8'>Август</asp:ListItem>

<asp:ListItem Value='9'>Сентябрь</asp:ListItem>

<asp:ListItem Value='10'>Октябрь</asp:ListItem>

<asp:ListItem Value='11'>Ноябрь</asp:ListItem>

<asp:ListItem Value='12'>Декабрь</asp:ListItem>

</asp:DropDownList>

<asp:DropDownList ID='DropDownList3' runat='server'

DataSourceID='SqlDataSource6' DataTextField='AyearNM' DataValueField='ID'

>

</asp:DropDownList>

<asp:Label ID='Label7' runat='server' style='color: #CC0000'></asp:Label>

<asp:SqlDataSource ID='SqlDataSource6' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString36 %>'

SelectCommand='SELECT * FROM [Ayear]'></asp:SqlDataSource>

</td>

</tr>

<tr>

<td align='right' class='style10'>Гражданство*:</td>

<td>

<asp:DropDownList ID='DropDownList6' runat='server'

DataSourceID='SqlDataSource3' DataTextField='FvcountryNM' DataValueField='ID'>

</asp:DropDownList>

<asp:Label ID='Label8' runat='server' style='color: #CC0000'></asp:Label>

<asp:SqlDataSource ID='SqlDataSource3' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString37 %>'

SelectCommand='SELECT * FROM [Fvcountry]'></asp:SqlDataSource>

</td>

</tr>

<tr>

<td align='right' class='style10'>Телефон по месту проживания:</td>

<td>

(<asp:TextBox

ID='TextBox5' runat='server' Width='64px'></asp:TextBox>

)

<asp:TextBox ID='TextBox6' runat='server' Width='180px' ></asp:TextBox>

</td>

<td>

<span class='style1'>(Например: (495) 123-45-67)&nbsp;

</span>

</td>

</tr>

<tr>

<td align='right' class='style10'>Номер мобильного телефона*:</td>

<td>

(<asp:TextBox

ID='TextBox7' runat='server' Width='64px'></asp:TextBox>

)

<asp:TextBox ID='TextBox8' runat='server'

Width='180px'></asp:TextBox>

</td>

<td>

<span class='style1'>(Например: (916) 123-45-67)

<asp:Label ID='Label10' runat='server' style='color: #CC0000'></asp:Label>

</span>

</td>

</tr>

<tr>

<td align='right' class='style10'>E-mail*:</td>

<td>

<asp:TextBox ID='TextBox9' runat='server'

Width='238px'></asp:TextBox>

<asp:Label ID='Label11' runat='server' style='color: #CC0000'></asp:Label>

<asp:RegularExpressionValidator ID='RegularExpressionValidator1' runat='server'

ControlToValidate='TextBox9' ErrorMessage='Введите корректное значение!'

style='color: #FF0000'

ValidationExpression='w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*'></asp:RegularExpressionValidator>

</td>

<td>

&nbsp;</td>

</tr>

<tr>

<td align='right' class='style10'>Сумма кредита*:</td>

<td>

<asp:TextBox ID='TextBox10' runat='server'

Width='238px'></asp:TextBox>&nbsp; руб.<asp:RegularExpressionValidator ID='RegularExpressionValidator2' runat='server'

ControlToValidate='TextBox10' ErrorMessage='Введите корректное значение!'

style='color: #FF0000'

ValidationExpression='d*'></asp:RegularExpressionValidator>

</td>

<td>

<span class='style1'>(Например: 100000)&nbsp; <asp:Label ID='Label12' runat='server' style='color: #CC0000'></asp:Label>

</span>

</td>

</tr>

<tr>

<td align='right' class='style10'>Срок кредита*:</td>

<td>

<asp:TextBox ID='TextBox11' runat='server' ></asp:TextBox>

&nbsp;месяцев

<asp:Label ID='Label13' runat='server' style='color: #CC0000'></asp:Label>

<asp:RegularExpressionValidator ID='RegularExpressionValidator3' runat='server'

ControlToValidate='TextBox11' ErrorMessage='Введите корректное значение!'

style='color: #FF0000'

ValidationExpression='d*'></asp:RegularExpressionValidator>

</td>

</tr>

<tr>

<td align='right' class='style10'>Пол*:</td>

<td> <asp:RadioButtonList ID='RadioButtonList1' runat='server' Width='240px' DataSourceID='SqlDataSource4' DataTextField='GenderNM'

DataValueField='ID' RepeatDirection='Horizontal'>

</asp:RadioButtonList>

<asp:SqlDataSource ID='SqlDataSource4' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString38 %>'

SelectCommand='SELECT * FROM [Gender]'></asp:SqlDataSource>

<asp:Label ID='Label41' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'><b>Паспорт*:</b></td>

<td>Серия:

<asp:TextBox

ID='TextBox12' runat='server' Width='64px'></asp:TextBox>&nbsp№<asp:TextBox ID='TextBox13' runat='server' ></asp:TextBox>

</td>

<td>

<span class='style1'>(Например: Серия 4601 № 123456)

<asp:Label ID='Label15' runat='server' style='color: #CC0000'></asp:Label>

</span>

</td>

</tr>

<tr>

<td align='right' class='style10'>Дата выдачи*:</td>

<td>

<asp:DropDownList ID='DropDownList8' runat='server' >

<asp:ListItem></asp:ListItem>

<asp:ListItem>1</asp:ListItem>

<asp:ListItem>2</asp:ListItem>

<asp:ListItem>3</asp:ListItem>

<asp:ListItem>4</asp:ListItem>

<asp:ListItem>5</asp:ListItem>

<asp:ListItem>6</asp:ListItem>

<asp:ListItem>7</asp:ListItem>

<asp:ListItem>8</asp:ListItem>

<asp:ListItem>9</asp:ListItem>

<asp:ListItem>10</asp:ListItem>

<asp:ListItem>11</asp:ListItem>

<asp:ListItem>12</asp:ListItem>

<asp:ListItem>13</asp:ListItem>

<asp:ListItem>14</asp:ListItem>

<asp:ListItem>15</asp:ListItem>

<asp:ListItem>16</asp:ListItem>

<asp:ListItem>17</asp:ListItem>

<asp:ListItem>18</asp:ListItem>

<asp:ListItem>19</asp:ListItem>

<asp:ListItem>20</asp:ListItem>

<asp:ListItem>21</asp:ListItem>

<asp:ListItem>22</asp:ListItem>

<asp:ListItem>23</asp:ListItem>

<asp:ListItem>24</asp:ListItem>

<asp:ListItem>25</asp:ListItem>

<asp:ListItem>26</asp:ListItem>

<asp:ListItem>27</asp:ListItem>

<asp:ListItem>28</asp:ListItem>

<asp:ListItem>29</asp:ListItem>

<asp:ListItem>30</asp:ListItem>

<asp:ListItem>31</asp:ListItem>

</asp:DropDownList>

<asp:DropDownList ID='DropDownList9' runat='server'>

<asp:ListItem></asp:ListItem>

<asp:ListItem Value='1'>Январь</asp:ListItem>

<asp:ListItem Value='2'>Февраль</asp:ListItem>

<asp:ListItem Value='3'>Март</asp:ListItem>

<asp:ListItem Value='4'>Апрель</asp:ListItem>

<asp:ListItem Value='5'>Май</asp:ListItem>

<asp:ListItem Value='6'>Июнь</asp:ListItem>

<asp:ListItem Value='7'>Июль</asp:ListItem>

<asp:ListItem Value='8'>Август</asp:ListItem>

<asp:ListItem Value='9'>Сентябрь</asp:ListItem>

<asp:ListItem Value='10'>Октябрь</asp:ListItem>

<asp:ListItem Value='11'>Ноябрь</asp:ListItem>

<asp:ListItem Value='12'>Декабрь</asp:ListItem>

</asp:DropDownList>

<asp:DropDownList ID='DropDownList10' runat='server'

DataSourceID='SqlDataSource6' DataTextField='AyearNM' DataValueField='ID' >

</asp:DropDownList>

<asp:Label ID='Label16' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Где и кем выдан*:</td>

<td>

<asp:TextBox ID='TextBox14' runat='server' Width='292px'></asp:TextBox>

<asp:Label ID='Label17' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

</table>

<p class='style7'>

&nbsp;&nbsp;

Адрес фактического проживания</p>

<table>

<tr>

<td align='right' class='style10'>Индекс:</td>

<td>

<asp:TextBox ID='TextBox15' runat='server'></asp:TextBox>

</td>

</tr>

<tr>

<td align='right' class='style10'>Область, район:</td>

<td>

<asp:TextBox ID='TextBox16' runat='server'></asp:TextBox>

</td>

</tr>

<tr>

<td align='right' class='style10'>Город/населённый пункт*:</td>

<td>

<asp:TextBox ID='TextBox17' runat='server'

Width='308px'></asp:TextBox>

<asp:Label ID='Label18' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Адрес*:</td>

<td>

<asp:TextBox ID='TextBox18' runat='server'

Width='380px'></asp:TextBox>

<asp:Label ID='Label19' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Укажите срок факт. проживания по адресу проживания*:</td>

<td>

<asp:DropDownList ID='DropDownList17' runat='server'

DataSourceID='SqlDataSource12' DataTextField='CyearNM' DataValueField='ID'

style='margin-left: 0px'>

</asp:DropDownList>

<asp:SqlDataSource ID='SqlDataSource12' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString47 %>'

SelectCommand='SELECT * FROM [Cyear]'></asp:SqlDataSource>

&nbsp;лет

<asp:DropDownList ID='DropDownList18' runat='server'

DataSourceID='SqlDataSource13' DataTextField='CmonthNM'

DataValueField='ID'>

</asp:DropDownList>

<asp:SqlDataSource ID='SqlDataSource13' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString48 %>'

SelectCommand='SELECT * FROM [Cmonth]'></asp:SqlDataSource>

&nbsp;месяцев

<asp:Label ID='Label20' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Недвижимость по адресу факт. проживания является*:</td>

<td>

<asp:DropDownList ID='DropDownList11' runat='server'

DataSourceID='SqlDataSource5' DataTextField='FtypeNM' DataValueField='ID'>

</asp:DropDownList>

<asp:SqlDataSource ID='SqlDataSource5' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString49 %>'

SelectCommand='SELECT * FROM [Ftype]'></asp:SqlDataSource>

<asp:Label ID='Label21' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

</table>

<p class='style7'>

&nbsp;&nbsp;

Адрес регистрации</p>

<table>

<tr><td align='right' class='style10' title='Да'>Совпадает с адресом фактического проживания?**</td>

<td>

<asp:CheckBox ID='CheckBox1' runat='server'

oncheckedchanged='CheckBox1_CheckedChanged' />

</td>

</tr>

<tr>

<td align='right' class='style10'>Индекс:</td>

<td>

<asp:TextBox ID='TextBox21' runat='server'></asp:TextBox>

</td>

</tr>

<tr>

<td align='right' class='style10'>Область, район:</td>

<td>

<asp:TextBox ID='TextBox22' runat='server'></asp:TextBox>

</td>

</tr>

<tr>

<td align='right' class='style10'>Город/населённый пункт*:</td>

<td>

<asp:TextBox ID='TextBox23' runat='server'

Width='250px'></asp:TextBox>

<asp:Label ID='Label22' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Адрес*:</td>

<td>

<asp:TextBox ID='TextBox24' runat='server'

Width='300px'></asp:TextBox>

<asp:Label ID='Label23' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style8'>Телефон по месту регистрации:</td>

<td class='style9'>

(<asp:TextBox

ID='TextBox1' runat='server' Width='64px'></asp:TextBox>

)

<asp:TextBox ID='TextBox25' runat='server' Width='180px' ></asp:TextBox>

</td>

<td class='style9'>

<span class='style1'>(Например: (495) 123-45-67)&nbsp;

</span>

</td>

</tr>

</table>

<p>

** Если адреса совпадают, то заполнение соответствующих полей необязательно.</p>

<table>

<tr> <td align='right' class='style10'>Укажите Ваше семейное положение*:</td>

<td>

<asp:DropDownList ID='DropDownList12' runat='server'

DataSourceID='SqlDataSource7' DataTextField='FamposNM' DataValueField='ID'>

</asp:DropDownList>

<asp:Label ID='Label24' runat='server' style='color: #CC0000'></asp:Label>

<asp:SqlDataSource ID='SqlDataSource7' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString42 %>'

SelectCommand='SELECT * FROM [Fampos]'></asp:SqlDataSource>

</td>

</tr>

<tr><td align='right' class='style10'>Укажите Ваше образование*:</td>

<td>

<asp:DropDownList ID='DropDownList13' runat='server'

DataSourceID='SqlDataSource8' DataTextField='EducationNM' DataValueField='ID'>

</asp:DropDownList>

<asp:Label ID='Label25' runat='server' style='color: #CC0000'></asp:Label>

<asp:SqlDataSource ID='SqlDataSource8' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString43 %>'

SelectCommand='SELECT * FROM [Education]'></asp:SqlDataSource>

</td>

</tr>

<tr><td align='right' class='style10'>Сколько у Вас несовершеннолетних детей?*</td>

<td>

<asp:DropDownList ID='DropDownList14' runat='server'

DataSourceID='SqlDataSource9' DataTextField='ChildrenNM' DataValueField='ID'>

</asp:DropDownList>

<asp:Label ID='Label26' runat='server' style='color: #CC0000'></asp:Label>

<asp:SqlDataSource ID='SqlDataSource9' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString44 %>'

SelectCommand='SELECT * FROM [Children]'></asp:SqlDataSource>

</td>

</tr>

</table>

<p class='style7'>

&nbsp;&nbsp;

Информация о трудоустройстве</p>

<table>

<tr><td align='right' class='style10'>Вид деятельности компании*:</td>

<td class='style11'>

<asp:DropDownList ID='DropDownList15' runat='server'

DataSourceID='SqlDataSource10' DataTextField='ComptypeNM'

DataValueField='ID'>

</asp:DropDownList>

<asp:Label ID='Label29' runat='server' style='color: #CC0000'></asp:Label>

<asp:SqlDataSource ID='SqlDataSource10' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString45 %>'

SelectCommand='SELECT * FROM [Comptype]'></asp:SqlDataSource>

</td>

</tr>

<tr><td align='right' class='style10'>Официальное наименование компании*:</td>

<td class='style11'>

<asp:TextBox ID='TextBox30' runat='server' Width='300px'></asp:TextBox>

<asp:Label ID='Label30' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr><td align='right' class='style10'>ИНН компании*:</td>

<td class='style11'>

<asp:TextBox ID='TextBox31' runat='server' Width='160px'></asp:TextBox>

<asp:Label ID='Label31' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr><td align='right' class='style10'>ОГРН компании*:</td>

<td class='style11'>

<asp:TextBox ID='TextBox32' runat='server' Width='160px'></asp:TextBox>

</td>

</tr>

<tr><td align='right' class='style10'>Должность*:</td>

<td class='style11'>

<asp:TextBox ID='TextBox33' runat='server' Width='300px'></asp:TextBox>

<asp:Label ID='Label32' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr><td align='right' class='style10'>Рабочий телефон*:</td>

<td class='style11'>

(<asp:TextBox

ID='TextBox34' runat='server' Width='64px'></asp:TextBox>

)

<asp:TextBox ID='TextBox35' runat='server' Width='180px' ></asp:TextBox>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<span class='style1'>(Например: (495) 123-45-67)&nbsp;

<asp:Label ID='Label33' runat='server' style='color: #CC0000'></asp:Label>

</span>

</td>

</tr>

</table>

<p class='style7'>

&nbsp;&nbsp;

Адрес компании (фактический адрес места Вашей работы)</p>

<table>

<tr>

<td align='right' class='style10'>Индекс:</td>

<td>

<asp:TextBox ID='TextBox26' runat='server'></asp:TextBox>

</td>

</tr>

<tr>

<td align='right' class='style10'>Область, район:</td>

<td>

<asp:TextBox ID='TextBox27' runat='server'></asp:TextBox>

</td>

</tr>

<tr>

<td align='right' class='style10'>Город/населённый пункт*:</td>

<td>

<asp:TextBox ID='TextBox28' runat='server'

Width='250px'></asp:TextBox>

<asp:Label ID='Label27' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Адрес*:</td>

<td>

<asp:TextBox ID='TextBox29' runat='server'

Width='300px'></asp:TextBox>

<asp:Label ID='Label28' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Количество сотрудников в компании-работодателе*:</td>

<td>

<asp:DropDownList ID='DropDownList16' runat='server'

DataSourceID='SqlDataSource11' DataTextField='CompamountNM'

DataValueField='ID'>

</asp:DropDownList>

<asp:Label ID='Label34' runat='server' style='color: #CC0000'></asp:Label>

<asp:SqlDataSource ID='SqlDataSource11' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString46 %>'

SelectCommand='SELECT * FROM [Compamount]'></asp:SqlDataSource>

</td>

</tr>

<tr>

<td align='right' class='style12'>Как долго Вы работаете в этой компании*:</td>

<td class='style13'>

<asp:DropDownList ID='DropDownList19' runat='server'

datasourceid='SqlDataSource14' DataTextField='CyearNM' DataValueField='ID'

style='margin-left: 0px'>

</asp:DropDownList>

<asp:SqlDataSource ID='SqlDataSource14' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString50 %>'

SelectCommand='SELECT * FROM [Cyear]'></asp:SqlDataSource>

&nbsp;лет

<asp:DropDownList ID='DropDownList20' runat='server'

datasourceid='SqlDataSource15' DataTextField='CmonthNM'

DataValueField='ID'>

</asp:DropDownList>

<asp:SqlDataSource ID='SqlDataSource15' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString51 %>'

SelectCommand='SELECT * FROM [Cmonth]'></asp:SqlDataSource>

&nbsp;месяцев

<asp:Label ID='Label35' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Как долго Вы работали на предыдущем месте работы*:</td>

<td>

<asp:DropDownList ID='DropDownList21' runat='server'

datasourceid='SqlDataSource16' DataTextField='CyearNM' DataValueField='ID'

style='margin-left: 0px'>

</asp:DropDownList>

<asp:SqlDataSource ID='SqlDataSource16' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString52 %>'

SelectCommand='SELECT * FROM [Cyear]'></asp:SqlDataSource>

&nbsp;лет

<asp:DropDownList ID='DropDownList22' runat='server'

datasourceid='SqlDataSource17' DataTextField='CmonthNM'

DataValueField='ID' Height='22px'>

</asp:DropDownList>

<asp:SqlDataSource ID='SqlDataSource17' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString53 %>'

SelectCommand='SELECT * FROM [Cmonth]'></asp:SqlDataSource>

&nbsp;месяцев

<asp:Label ID='Label36' runat='server' style='color: #CC0000'></asp:Label>

</td>

</tr>

<tr>

<td align='right' class='style10'>Размер Вашей месячной заработной платы после уплаты налогов и других вычетов*:</td>

<td>

<asp:TextBox ID='TextBox36' runat='server' Width='200px'></asp:TextBox>&nbsp руб.

<asp:RegularExpressionValidator ID='RegularExpressionValidator4' runat='server'

ControlToValidate='TextBox36' ErrorMessage='Введите корректное значение!'

style='color: #FF0000'

ValidationExpression='d*'></asp:RegularExpressionValidator>

</td>

<td>

<span class='style1'>(Например: 100000)&nbsp;

<asp:Label ID='Label9' runat='server' style='color: #CC0000'></asp:Label>

</span>

</td>

</tr>

</table>

<p class='style7'>

&nbsp;&nbsp;

Автомобиль</p>

<table>

<tr><td align='right' class='style10'>Есть ли у Вас автомобиль, находящийся в Вашей собственности?*</td>

<td>

<asp:DropDownList ID='DropDownList23' runat='server'

DataSourceID='SqlDataSource18' DataTextField='AutomobNM'

DataValueField='ID'>

</asp:DropDownList>

<asp:Label ID='Label37' runat='server' style='color: #CC0000'></asp:Label>

<asp:SqlDataSource ID='SqlDataSource18' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString54 %>'

SelectCommand='SELECT * FROM [Automob]'></asp:SqlDataSource>

</td> </tr>

</table>

<p class='style7'>

&nbsp;&nbsp;

Путешествия</p>

<table>

<tr><td align='right' class='style10'>Вы совершали поездки за рубеж в течение последних 6 месяцев?*</td>

<td>

<asp:RadioButtonList ID='RadioButtonList2' runat='server'

Width='240px' DataSourceID='SqlDataSource19' DataTextField='TravelNM'

DataValueField='ID' RepeatDirection='Horizontal'>

</asp:RadioButtonList>

<asp:SqlDataSource ID='SqlDataSource19' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString55 %>'

SelectCommand='SELECT * FROM [Travel]'></asp:SqlDataSource>

<asp:Label ID='Label38' runat='server' style='color: #CC0000'></asp:Label>

</td> </tr>

</table>

<p class='style7'>

&nbsp;&nbsp;

Ваши кредиты</p>

<table>

<tr><td align='right' class='style10'>Есть ли у Вас кредитная карта или открытая кредитная линия?*</td>

<td>

<asp:RadioButtonList ID='RadioButtonList3' runat='server'

Width='240px' DataSourceID='SqlDataSource20' DataTextField='CommitmentNM'

DataValueField='ID' RepeatDirection='Horizontal'>

</asp:RadioButtonList>

<asp:SqlDataSource ID='SqlDataSource20' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString56 %>'

SelectCommand='SELECT * FROM [Commitment]'></asp:SqlDataSource>

<asp:Label ID='Label39' runat='server' style='color: #CC0000'></asp:Label>

</td> </tr>

<tr><td align='right' class='style10'>Есть ли у Вас невыплаченный кредит?*</td>

<td>

<asp:RadioButtonList ID='RadioButtonList4' runat='server'

Width='240px' DataSourceID='SqlDataSource21' DataTextField='DebtloanNM'

DataValueField='ID' RepeatDirection='Horizontal'>

</asp:RadioButtonList>

<asp:SqlDataSource ID='SqlDataSource21' runat='server'

ConnectionString='<%$ ConnectionStrings:BANKConnectionString57 %>'

SelectCommand='SELECT * FROM [Debtloan]'></asp:SqlDataSource>

<asp:Label ID='Label40' runat='server' style='color: #CC0000'></asp:Label>

</td> </tr>

</table>

<p>

<asp:Button ID='Button1' runat='server' onclick='Button1_Click' Text='Создать заявку' />

</p>

</form>

<p>

* Поля, обязательные для заполнения.</p>

<p>

</p>

</form>

</table></td>

</tr>

</table></td>

</tr>

<tr>

<td height='1'><table width='100%' border='0' cellspacing='0' cellpadding='0'>

<tr>

<td height='81' align='center' valign='middle' bgcolor='#386092' class='menu'><a href='index.htm' class='menu'>Главная страница</a> | <a href='about.htm' class='menu'>О нас</a> | <a href='partners.htm' class='menu'>Наши партнёры</a> | <a href='contact.htm' class='menu'>Контакты</a><br>

Copyrights 2011 @ Student</td>

</tr>

</table></td>

</tr>

</table>

</body>

</html>

1.2 Дизайн веб-страниц

Дизайн страницы и стили шрифтов описаны в файле Style.css

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

}

h1 {

font-family: Arial;

font-size: 14px;

margin: 0px;

color: #3D6AA1;

}

a {

text-decoration: none;

color: #044797;

}

a:link {

text-decoration: none;

}

a:hover {

text-decoration: underline;

}

a:active {

color: #000000;

text-decoration: underline;

}

.logo {

font-family: Arial;

font-size: 14px;

font-weight: bold;

color: #ADCDEB;

}

.menu {

font-family: Arial;

font-size: 10px;

text-decoration: none;

color: #FFFFFF;

}

.menu2 {

font-family: Arial;

font-size: 10px;

color: #FFFFFF;

text-decoration: none;

}

p {

font-family: Arial;

font-size: 10px;

}

1.3 Функциональные модули

Онлайн заявка на получение кредита

Исполняемый код страницы описан в файле Default.aspx.cs

using System;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using System.Data.SqlClient;

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

{

string for_label;

protected bool check_data(SqlCommand aCommand)

{

Label2.Text = '';

Label3.Text = '';

Label4.Text = '';

Label5.Text = '';

Label6.Text = '';

Label7.Text = '';

Label8.Text = '';

Label9.Text = '';

Label10.Text = '';

Label11.Text = '';

Label12.Text = '';

Label13.Text = '';

Label41.Text = '';

Label15.Text = '';

Label16.Text = '';

Label17.Text = '';

Label18.Text = '';

Label19.Text = '';

Label20.Text = '';

Label21.Text = '';

Label22.Text = '';

Label23.Text = '';

Label24.Text = '';

Label25.Text = '';

Label26.Text = '';

Label27.Text = '';

Label28.Text = '';

Label29.Text = '';

Label30.Text = '';

Label31.Text = '';

Label32.Text = '';

Label33.Text = '';

Label34.Text = '';

Label35.Text = '';

Label36.Text = '';

Label37.Text = '';

Label38.Text = '';

Label39.Text = '';

Label40.Text = '';

for_label = 'Введите корректное значение!';

if (Convert.ToInt32(DropDownList5.SelectedValue) == 131)

{

Label3.Text = for_label;

return false;

}

if (Convert.ToInt32(DropDownList7.SelectedValue) == 138)

{

Label4.Text = for_label;

return false;

}

if (TextBox2.Text == '')

{

Label2.Text = for_label;

return false;

}

if (TextBox3.Text == '')

{

Label5.Text = for_label;

return false;

}

if (TextBox4.Text == '')

{

Label6.Text = for_label;

return false;

}

if ((DropDownList1.SelectedValue == '') | (DropDownList2.SelectedValue == '') | (Convert.ToInt32(DropDownList3.SelectedValue) == 321))

{

Label7.Text = for_label;

return false;

}

if ((Convert.ToInt32(DateTime.Today.Year.ToString()) - Convert.ToInt32(Convert.ToString(DropDownList3.SelectedItem))) < 19)

{

Label7.Text = 'К сожалению, Вы не проходите по возрасту!';

return false;

}

if (Convert.ToInt32(DropDownList6.SelectedValue) == 311)

{

Label8.Text = for_label;

return false;

}

if ((TextBox7.Text == '') | (TextBox8.Text == ''))

{

Label10.Text = for_label;

return false;

}

if (TextBox9.Text == '')

{

Label11.Text = for_label;

return false;

}

if (TextBox10.Text == '')

{

Label12.Text = for_label;

return false;

}

if (TextBox11.Text == '')

{

Label13.Text = for_label;

return false;

}

if (RadioButtonList1.SelectedValue == '')

{

Label41.Text = for_label;

return false;

}

if ((TextBox12.Text == '') | (TextBox13.Text == ''))

{

Label15.Text = for_label;

return false;

}

if ((DropDownList8.SelectedValue == '') | (DropDownList9.SelectedValue == '') | (Convert.ToInt32(DropDownList10.SelectedValue) == 321))

{

Label16.Text = for_label;

return false;

}

if (TextBox14.Text == '')

{

Label17.Text = for_label;

return false;

}

if (TextBox17.Text == '')

{

Label18.Text = for_label;

return false;

}

if (TextBox18.Text == '')

{

Label19.Text = for_label;

return false;

}

if (((Convert.ToInt32(DropDownList17.SelectedValue) == 486) & (Convert.ToInt32(DropDownList18.SelectedValue) == 538)) | ((Convert.ToInt32(DropDownList17.SelectedValue) == 487) & (Convert.ToInt32(DropDownList18.SelectedValue) == 539)))

{

Label20.Text = for_label;

return false;

}

if ((Convert.ToInt32(DropDownList17.SelectedValue) == 486) | (Convert.ToInt32(DropDownList18.SelectedValue) == 538))

{

Label20.Text = for_label;

return false;

}

if (Convert.ToInt32(DropDownList11.SelectedValue) == 429)

{

Label21.Text = for_label;

return false;

}

if ((TextBox23.Text == '') & (CheckBox1.Checked == false))

{

Label22.Text = for_label;

return false;

}

if ((TextBox24.Text == '') & (CheckBox1.Checked == false))

{

Label23.Text = for_label;

return false;

}

if (Convert.ToInt32(DropDownList12.SelectedValue) == 454)

{

Label24.Text = for_label;

return false;

}

if (Convert.ToInt32(DropDownList13.SelectedValue) == 457)

{

Label25.Text = for_label;

return false;

}

if (Convert.ToInt32(DropDownList14.SelectedValue) == 464)

{

Label26.Text = for_label;

return false;

}

if (Convert.ToInt32(DropDownList15.SelectedValue) == 551)

{

Label29.Text = for_label;

return false;

}

if (TextBox30.Text == '')

{

Label30.Text = for_label;

return false;

}

if (TextBox31.Text == '')

{

Label31.Text = for_label;

return false;

}

if (TextBox33.Text == '')

{

Label32.Text = for_label;

return false;

}

if ((TextBox34.Text == '') | (TextBox35.Text == ''))

{

Label33.Text = for_label;

return false;

}

if (TextBox28.Text == '')

{

Label27.Text = for_label;

return false;

}

if (TextBox29.Text == '')

{

Label28.Text = for_label;

return false;

}

if (Convert.ToInt32(DropDownList16.SelectedValue) == 576)

{

Label34.Text = for_label;

return false;

}

if (((Convert.ToInt32(DropDownList19.SelectedValue) == 486) & (Convert.ToInt32(DropDownList20.SelectedValue) == 538)) | ((Convert.ToInt32(DropDownList19.SelectedValue) == 487) & (Convert.ToInt32(DropDownList20.SelectedValue) == 539)))

{

Label35.Text = for_label;

return false;

}

if ((Convert.ToInt32(DropDownList19.SelectedValue) == 486) | (Convert.ToInt32(DropDownList20.SelectedValue) == 538))

{

Label35.Text = for_label;

return false;

}

if (((Convert.ToInt32(DropDownList21.SelectedValue) == 486) & (Convert.ToInt32(DropDownList22.SelectedValue) == 538)) | (Convert.ToInt32(DropDownList21.SelectedValue) == 486) | (Convert.ToInt32(DropDownList22.SelectedValue) == 538))

{

Label36.Text = for_label;

return false;

}

if (TextBox36.Text == '')

{

Label9.Text = for_label;

return false;

}

if (Convert.ToInt32(DropDownList23.SelectedValue) == 584)

{

Label37.Text = for_label;

return false;

}

if (RadioButtonList2.SelectedValue == '')

{

Label38.Text = for_label;

return false;

}

if (RadioButtonList3.SelectedValue == '')

{

Label39.Text = for_label;

return false;

}

if (RadioButtonList4.SelectedValue == '')

{

Label40.Text = for_label;

return false;

}

else return true;

}

protected void Button1_Click(object sender, EventArgs e)

{

string source = 'Data Source=Mario-PK;Initial Catalog=BANK;Integrated Security=True';

SqlConnection conn = new SqlConnection(source);

conn.Open();

SqlCommand aCommand = new SqlCommand('sp_RequestInsert', conn);

aCommand.CommandType = CommandType.StoredProcedure;

aCommand.Parameters.Add(

new SqlParameter('@RegionID',

SqlDbType.Int,

0,

'RegionID')

);

aCommand.Parameters.Add(

new SqlParameter('@WorkformID',

SqlDbType.Int,

0,

'WorkformID')

);

aCommand.Parameters.Add(

new SqlParameter('@Secname',

SqlDbType.VarChar,

100,

'Secname')

);

aCommand.Parameters.Add(

new SqlParameter('@Firstname',

SqlDbType.VarChar,

100,

'Firstname')

);

aCommand.Parameters.Add(

new SqlParameter('@Thirdname',

SqlDbType.VarChar,

100,

'Thirdname')

);

aCommand.Parameters.Add(

new SqlParameter('@Bdate',

SqlDbType.DateTime,

0,

'Bdate')

);

aCommand.Parameters.Add(

new SqlParameter('@FvcountryID',

SqlDbType.Int,

0,

'FvcountryID')

);

aCommand.Parameters.Add(

new SqlParameter('@Telnum',

SqlDbType.VarChar,

20,

'Telnum')

);

aCommand.Parameters.Add(

new SqlParameter('@Cellnum',

SqlDbType.VarChar,

20,

'Cellnum')

);

aCommand.Parameters.Add(

new SqlParameter('@Email',

SqlDbType.VarChar,

50,

'Email')

);

aCommand.Parameters.Add(

new SqlParameter('@Crsum',

SqlDbType.VarChar,

50,

'Crsum')

);

aCommand.Parameters.Add(

new SqlParameter('@Wnterm',

SqlDbType.Int,

0,

'Wnterm')

);

aCommand.Parameters.Add(

new SqlParameter('@GenderID',

SqlDbType.Int,

0,

'GenderID')

);

aCommand.Parameters.Add(

new SqlParameter('@Paspnum',

SqlDbType.VarChar,

50,

'Paspnum')

);

aCommand.Parameters.Add(

new SqlParameter('@Dpasp',

SqlDbType.DateTime,

0,

'Dpasp')

);

aCommand.Parameters.Add(

new SqlParameter('@Infpasp',

SqlDbType.VarChar,

300,

'Infpasp')

);

aCommand.Parameters.Add(

new SqlParameter('@Findex',

SqlDbType.VarChar,

20,

'Findex')

);

aCommand.Parameters.Add(

new SqlParameter('@Farea',

SqlDbType.VarChar,

50,

'Farea')

);

aCommand.Parameters.Add(

new SqlParameter('@Fcity',

SqlDbType.VarChar,

80,

'Fcity')

);

aCommand.Parameters.Add(

new SqlParameter('@Faddress',

SqlDbType.VarChar,

200,

'Faddress')

);

aCommand.Parameters.Add(

new SqlParameter('@Ftime',

SqlDbType.Int,

0,

'Ftime')

);

aCommand.Parameters.Add(

new SqlParameter('@FtypeID',

SqlDbType.Int,

0,

'FtypeID')

);

aCommand.Parameters.Add(

new SqlParameter('@Add_ident',

SqlDbType.Int,

0,

'Add_ident')

);

aCommand.Parameters.Add(

new SqlParameter('@Rindex',

SqlDbType.VarChar,

20,

'Rindex')

);

aCommand.Parameters.Add(

new SqlParameter('@Rarea',

SqlDbType.VarChar,

50,

'Rarea')

);

aCommand.Parameters.Add(

new SqlParameter('@Rcity',

SqlDbType.VarChar,

80,

'Rcity')

);

aCommand.Parameters.Add(

new SqlParameter('@Raddress',

SqlDbType.VarChar,

200,

'Raddress')

);

aCommand.Parameters.Add(

new SqlParameter('@Telreg',

SqlDbType.VarChar,

20,

'Telreg')

);

aCommand.Parameters.Add(

new SqlParameter('@FamposID',

SqlDbType.Int,

0,

'FamposID')

);

aCommand.Parameters.Add(

new SqlParameter('@EducationID',

SqlDbType.Int,

0,

'EducationID')

);

aCommand.Parameters.Add(

new SqlParameter('@ChildrenID',

SqlDbType.Int,

0,

'ChildrenID')

);

aCommand.Parameters.Add(

new SqlParameter('@ComptypeID',

SqlDbType.Int,

0,

'ComptypeID')

);

aCommand.Parameters.Add(

new SqlParameter('@Compname',

SqlDbType.VarChar,

200,

'Compname')

);

aCommand.Parameters.Add(

new SqlParameter('@Compinn',

SqlDbType.VarChar,

20,

'Compinn')

);

aCommand.Parameters.Add(

new SqlParameter('@Compogrn',

SqlDbType.VarChar,

50,

'Compogrn')

);

aCommand.Parameters.Add(

new SqlParameter('@Comppos',

SqlDbType.VarChar,

100,

'Comppos')

);

aCommand.Parameters.Add(

new SqlParameter('@Worknum',

SqlDbType.VarChar,

20,

'Worknum')

);

aCommand.Parameters.Add(

new SqlParameter('@Windex',

SqlDbType.VarChar,

20,

'Windex')

);

aCommand.Parameters.Add(

new SqlParameter('@Warea',

SqlDbType.VarChar,

50,

'Warea')

);

aCommand.Parameters.Add(

new SqlParameter('@Wcity',

SqlDbType.VarChar,

80,

'Wcity')

);

aCommand.Parameters.Add(

new SqlParameter('@Waddress',

SqlDbType.VarChar,

200,

'Waddress')

);

aCommand.Parameters.Add(

new SqlParameter('@CompamountID',

SqlDbType.Int,

0,

'CompamountID')

);

aCommand.Parameters.Add(

new SqlParameter('@Wtermpres',

SqlDbType.Int,

0,

'Wtermpres')

);

aCommand.Parameters.Add(

new SqlParameter('@Wtermlast',

SqlDbType.Int,

0,

'Wtermlast')

);

aCommand.Parameters.Add(

new SqlParameter('@Wpaym',

SqlDbType.Int,

0,

'Wpaym')

);

aCommand.Parameters.Add(

new SqlParameter('@AutomobID',

SqlDbType.Int,

0,

'AutomobID')

);

aCommand.Parameters.Add(

new SqlParameter('@TravelID',

SqlDbType.Int,

0,

'TravelID')

);

aCommand.Parameters.Add(

new SqlParameter('@CommitmentID',

SqlDbType.Int,

0,

'CommitmentID')

);

aCommand.Parameters.Add(

new SqlParameter('@DebtloanID',

SqlDbType.Int,

0,

'DebtloanID')

);

if (check_data(aCommand) != false)

{

for_label = '';

aCommand.UpdatedRowSource = UpdateRowSource.None;

aCommand.Parameters[0].Value = Convert.ToInt32(DropDownList5.SelectedValue);

aCommand.Parameters[1].Value = Convert.ToInt32(DropDownList7.SelectedValue);

aCommand.Parameters[2].Value = TextBox2.Text;

aCommand.Parameters[3].Value = TextBox3.Text;

aCommand.Parameters[4].Value = TextBox4.Text;

aCommand.Parameters[5].Value = Convert.ToDateTime(DropDownList1.Text + '.' + DropDownList2.Text + '.' + DropDownList3.SelectedItem);

aCommand.Parameters[6].Value = DropDownList6.SelectedValue;

if ((TextBox5.Text == '') & (TextBox6.Text == ''))

{ aCommand.Parameters[7].Value = TextBox5.Text + TextBox6.Text; }

else { aCommand.Parameters[7].Value = '(' + TextBox5.Text + ')' + TextBox6.Text; }

aCommand.Parameters[8].Value = '(' + TextBox7.Text + ')' + TextBox8.Text;

aCommand.Parameters[9].Value = TextBox9.Text;

aCommand.Parameters[10].Value = TextBox10.Text;

aCommand.Parameters[11].Value = TextBox11.Text;

aCommand.Parameters[12].Value = RadioButtonList1.SelectedValue;

aCommand.Parameters[13].Value = TextBox12.Text + '.' + TextBox13.Text;

aCommand.Parameters[14].Value = Convert.ToDateTime(DropDownList8.Text + '.' + DropDownList9.Text + '.' + DropDownList10.SelectedItem);

aCommand.Parameters[15].Value = TextBox14.Text;

aCommand.Parameters[16].Value = TextBox15.Text;

aCommand.Parameters[17].Value = TextBox16.Text;

aCommand.Parameters[18].Value = TextBox17.Text;

aCommand.Parameters[19].Value = TextBox18.Text;

aCommand.Parameters[20].Value = Convert.ToInt32(Convert.ToString(DropDownList17.SelectedItem)) * 12 + Convert.ToInt32(Convert.ToString(DropDownList18.SelectedItem));

aCommand.Parameters[21].Value = Convert.ToInt32(DropDownList11.SelectedValue);

if (CheckBox1.Checked == true)

{ aCommand.Parameters[22].Value = 1; }

else { aCommand.Parameters[22].Value = 0; }

aCommand.Parameters[23].Value = TextBox21.Text;

aCommand.Parameters[24].Value = TextBox22.Text;

aCommand.Parameters[25].Value = TextBox23.Text;

aCommand.Parameters[26].Value = TextBox24.Text;

if ((TextBox1.Text == '') & (TextBox25.Text == ''))

{ aCommand.Parameters[27].Value = TextBox1.Text + TextBox25.Text; }

else { aCommand.Parameters[27].Value = '(' + TextBox1.Text + ')' + TextBox25.Text; }

aCommand.Parameters[28].Value = Convert.ToInt32(DropDownList12.SelectedValue);

aCommand.Parameters[29].Value = Convert.ToInt32(DropDownList13.SelectedValue);

aCommand.Parameters[30].Value = Convert.ToInt32(DropDownList14.SelectedValue);

aCommand.Parameters[31].Value = Convert.ToInt32(DropDownList15.SelectedValue);

aCommand.Parameters[32].Value = TextBox30.Text;

aCommand.Parameters[33].Value = TextBox31.Text;

aCommand.Parameters[34].Value = TextBox32.Text;

aCommand.Parameters[35].Value = TextBox33.Text;

aCommand.Parameters[36].Value = '(' + TextBox34.Text + ')' + TextBox35.Text;

aCommand.Parameters[37].Value = TextBox26.Text;

aCommand.Parameters[38].Value = TextBox27.Text;

aCommand.Parameters[39].Value = TextBox28.Text;

aCommand.Parameters[40].Value = TextBox29.Text;

aCommand.Parameters[41].Value = Convert.ToInt32(DropDownList16.SelectedValue);

aCommand.Parameters[42].Value = Convert.ToInt32(Convert.ToString(DropDownList19.SelectedItem)) * 12 + Convert.ToInt32(Convert.ToString(DropDownList20.SelectedItem));

aCommand.Parameters[43].Value = Convert.ToInt32(Convert.ToString(DropDownList21.SelectedItem)) * 12 + Convert.ToInt32(Convert.ToString(DropDownList22.SelectedItem));

aCommand.Parameters[44].Value = TextBox36.Text;

aCommand.Parameters[45].Value = Convert.ToInt32(DropDownList23.SelectedValue);

aCommand.Parameters[46].Value = RadioButtonList2.SelectedValue;

aCommand.Parameters[47].Value = RadioButtonList3.SelectedValue;

aCommand.Parameters[48].Value = RadioButtonList4.SelectedValue;

aCommand.ExecuteNonQuery();

System.Diagnostics.Process.Start('C:/ConsoleApplication1/ConsoleApplication1.exe');

Response.Redirect('request.htm');

}

conn.Close();

}

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)

{

}

}

Вызов функций пересчёта параметров, принятия решение, формирования и отправки письма.

Исполняемый код приложения описан в файле ConsoleApplication1.cs

using System;

using System.Collections.Generic;

using System.Text;

using System.Data.SqlClient;

using System.Web;

using System.Net;

using System.Net.Mail;

using System.Net.Mime;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

string Email, MessageText;

string source = 'Data Source=Mario-PK;Initial Catalog=BANK;Integrated Security=True';

SqlConnection conn = new SqlConnection(source);

conn.Open();

string query = @'exec Update_ayear';

SqlCommand command = new SqlCommand(query, conn);

SqlDataReader reader = command.ExecuteReader();

reader.Close();

string query2 = @'exec Update_fvcountry';

SqlCommand command2 = new SqlCommand(query2, conn);

SqlDataReader reader2 = command2.ExecuteReader();

reader2.Close();

string query3 = @'exec Update_gender';

SqlCommand command3 = new SqlCommand(query3, conn);

SqlDataReader reader3 = command3.ExecuteReader();

reader3.Close();

string query4 = @'exec Update_region';

SqlCommand command4 = new SqlCommand(query4, conn);

SqlDataReader reader4 = command4.ExecuteReader();

reader4.Close();

string query6 = @'exec blacklist';

SqlCommand command6 = new SqlCommand(query6, conn);

SqlDataReader reader6 = command6.ExecuteReader();

reader6.Close();

string query5 = @'exec update_main';

SqlCommand command5 = new SqlCommand(query5, conn);

SqlDataReader reader5 = command5.ExecuteReader();

reader5.Close();

string query7 = @'exec update_text';

SqlCommand command7 = new SqlCommand(query7, conn);

SqlDataReader reader7 = command7.ExecuteReader();

reader7.Close();

string query8 = @'SELECT Email,MessageText from Request1 where Message = 'NO'';

SqlCommand command8 = new SqlCommand(query8, conn);

SqlDataReader reader8 = command8.ExecuteReader();

while (reader8.Read())

{

Email = (string)reader8['Email'];

MessageText = (string)reader8['MessageText'];

//Адрес SMTP-сервера

String smtpHost = 'mx.bmstu.ru';

//Порт SMTP-сервера

int smtpPort = 25;

//Логин

String smtpUserName = 'universitybank@mail.ru';

//Пароль

String smtpUserPass = 'university2011';

//Создание подключения

SmtpClient client = new SmtpClient(smtpHost, smtpPort);

client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass);

//Адрес для поля 'От'

String msgFrom = 'UniversityBank@mail.ru';

//Адрес для поля 'Кому' (адрес получателя)

String msgTo = Email;

Console.WriteLine(msgTo);

//Тема письма

String msgSubject = 'Заявка на кредит в UniversityBank';

//Текст письма

String msgBody = MessageText;

MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody);

try

{

//Отсылаем сообщение

client.Send(message);

}

catch (SmtpException ex)

{

//В случае ошибки при отсылке сообщения можем увидеть, в чем проблема

Console.WriteLine(ex.InnerException.Message.ToString());

}?

}

reader8.Close();

string query9 = @'Update Request1 set Message = 'YES' where Message = 'NO'';

SqlCommand command9 = new SqlCommand(query9, conn);

SqlDataReader reader9 = command9.ExecuteReader();

reader9.Close();

conn.Close();

}

}

}

Процедуры пересчёта параметров, принятия решение, хранимые в базе данных

Процедура сравнения данных пользователя с чёрным списком

Исполняемый код процедуры описан в файле dbo.blacklist

CREATE PROCEDURE dbo.blacklist As

Begin

declare @cursor CURSOR

declare c CURSOR FOR

SELECT ID FROM Request1 where Offer = null

declare @ID int

declare @Secname VarChar(20)

declare @Firstname VarChar(20)

declare @Thirdname VarChar(20)

declare @Bdate VarChar(20)

declare @black VarChar(20)

set @cursor = c

OPEN @cursor

fetch next from @cursor into @ID

WHILE (@@FETCH_STATUS=0) BEGIN

Select @Secname = Cast((select Secname from Request1 Where ID = @ID) As Char)

Select @Firstname = Cast((select Firstname from Request1 Where ID = @ID) As Char)

Select @Thirdname = Cast((select Thirdname from Request1 Where ID = @ID) As Char)

Select @Bdate = Cast((select Bdate from Request1 Where ID = @ID) As Char)

Select @black = Cast((Select count(*) from His_blacklist where SecondName = @Secname and FirstName = @Firstname and ThirdName = @Thirdname and BirthDate = @Bdate) As Char)

If @black = 1

Update Request1 Set Offer = 'NO' Where ID = @ID

fetch next from @cursor into @ID

END

CLOSE @CURSOR

DEALLOCATE @CURSOR

DEALLOCATE c

End

1.3.1.1 Процедура пересчёта весовых коэффициентов, связанных с годом рождения

Исполняемый код процедуры описан в файле dbo.update_ayear

CREATE PROCEDURE dbo.update_ayear

AS

begin

declare @cursor CURSOR

declare c CURSOR FOR

SELECT ID FROM Ayear

declare @ID int

declare @Weight VarChar(20)

declare @OldWeight VarChar(20)

declare @MidWeight VarChar(20)

set @cursor = c

set @Weight = null

set @OldWeight = null

OPEN @cursor

fetch next from @cursor into @ID

WHILE (@@FETCH_STATUS=0) BEGIN

Select @OldWeight = Cast((select weight from Ayear Where ID = @ID) As Char)

Select @Weight = Cast ( (select sum(Category) from His_customer where Year(BirthDate) = (Select AyearNM FROM Ayear Where ID = @ID)) / (select count(*) from His_customer where Year(BirthDate) = (Select AyearNM FROM Ayear Where ID = @ID)) As Char)

if ((@Weight != null) and (@OldWeight != null))

Set @MidWeight = Cast(ROUND(((ABS(@Weight) + ABS(@OldWeight))/2),0) As Char)

IF @OldWeight = NULL

Update Ayear Set Weight = @Weight Where ID = @ID

IF @Weight = NULL

Update Ayear Set Weight = @OldWeight Where ID = @ID

fetch next from @cursor into @ID

END

CLOSE @CURSOR

DEALLOCATE @CURSOR

DEALLOCATE c

End

Процедура пересчёта весовых коэффициентов, связанных с гражданством

Исполняемый код процедуры описан в файле dbo.update_fvcountry

CREATE PROCEDURE dbo.update_fvcountry

AS

begin

declare @cursor CURSOR

declare c CURSOR FOR

SELECT ID FROM Fvcountry

declare @ID int

declare @Weight VarChar(20)

declare @OldWeight VarChar(20)

declare @MidWeight VarChar(20)

set @cursor = c

set @Weight = null

set @OldWeight = null

OPEN @cursor

fetch next from @cursor into @ID

WHILE (@@FETCH_STATUS=0) BEGIN

Select @OldWeight = Cast((select weight from Fvcountry Where ID = @ID) As Char)

Select @Weight = Cast ( (select sum(Category) from His_customer where Fvcountry = (Select FvcountryNM FROM Fvcountry Where ID = @ID)) / (select count(*) from His_customer where Fvcountry = (Select FvcountryNM FROM Fvcountry Where ID = @ID)) As Char)

if ((@Weight != null) and (@OldWeight != null))

Set @MidWeight = Cast(ROUND(((ABS(@Weight) + ABS(@OldWeight))/2),0) As Char)

IF @OldWeight = NULL

Update Fvcountry Set Weight = @Weight Where ID = @ID

IF @Weight = NULL

Update Fvcountry Set Weight = @OldWeight Where ID = @ID

fetch next from @cursor into @ID

END

CLOSE @CURSOR

DEALLOCATE @CURSOR

DEALLOCATE c

End

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

Исполняемый код процедуры описан в файле dbo.update_gender

CREATE PROCEDURE dbo.update_gender

AS

begin

declare @cursor CURSOR

declare c CURSOR FOR

SELECT ID FROM Gender

declare @ID int

declare @Weight VarChar(20)

declare @OldWeight VarChar(20)

declare @MidWeight VarChar(20)

set @cursor = c

set @Weight = null

set @OldWeight = null

OPEN @cursor

fetch next from @cursor into @ID

WHILE (@@FETCH_STATUS=0) BEGIN

Select @OldWeight = Cast((select weight from Gender Where ID = @ID) As Char)

Select @Weight = Cast ( (select sum(Category) from His_customer where Gender = (Select GenderNM FROM Gender Where ID = @ID)) / (select count(*) from His_customer where Gender = (Select GenderNM FROM Gender Where ID = @ID)) As Char)

if ((@Weight != null) and (@OldWeight != null))

Set @MidWeight = Cast(ROUND(((ABS(@Weight) + ABS(@OldWeight))/2),0) As Char)

IF @OldWeight = NULL

Update Gender Set Weight = @Weight Where ID = @ID

IF @Weight = NULL

Update Gender Set Weight = @OldWeight Where ID = @ID

fetch next from @cursor into @ID

END

CLOSE @CURSOR

DEALLOCATE @CURSOR

DEALLOCATE c

End

Процедура пересчёта весовых коэффициентов, связанных с регионом

Исполняемый код процедуры описан в файле dbo.update_region

CREATE PROCEDURE dbo.update_region

AS

begin

declare @cursor CURSOR

declare c CURSOR FOR

SELECT ID FROM Region

declare @ID int

declare @Weight VarChar(20)

declare @OldWeight VarChar(20)

declare @MidWeight VarChar(20)

set @cursor = c

set @Weight = null

set @OldWeight = null

OPEN @cursor

fetch next from @cursor into @ID

WHILE (@@FETCH_STATUS=0) BEGIN

Select @OldWeight = Cast((select weight from Region Where ID = @ID) As Char)

Select @Weight = Cast ( (select sum(Category) from His_customer where Fregion = (Select RegionNM FROM Region Where ID = @ID)) / (select count(*) from His_customer where Fregion = (Select RegionNM FROM Region Where ID = @ID)) As Char)

if ((@Weight != null) and (@OldWeight != null))

Set @MidWeight = Cast(ROUND(((ABS(@Weight) + ABS(@OldWeight))/2),0) As Char)

IF @OldWeight = NULL

Update Region Set Weight = @Weight Where ID = @ID

IF @Weight = NULL

Update Region Set Weight = @OldWeight Where ID = @ID

fetch next from @cursor into @ID

END

CLOSE @CURSOR

DEALLOCATE @CURSOR

DEALLOCATE c

End

Процедура принятия решения о выдачи кредита

Исполняемый код процедуры описан в файле dbo.update_main

CREATE PROCEDURE dbo.update_main As

Begin

declare @cursor CURSOR

declare c CURSOR FOR

SELECT ID FROM Request1 where Offer = null

declare @ID int

declare @MidWeight VarChar(20)

declare @Ftime VarChar(20)

declare @WeightFtime VarChar(20)

declare @Ident VarChar(20)

declare @WeightIdent VarChar(20)

declare @Wtermpres VarChar(20)

declare @WeightWtermpres VarChar(20)

declare @Wtermlast VarChar(20)

declare @WeightWtermlast VarChar(20)

declare @Wpaym VarChar(20)

declare @WeightWpaym VarChar(20)

declare @Crsum VarChar(20)

declare @WeightCrsum VarChar(20)

declare @Region VarChar(20)

declare @Workform VarChar(20)

declare @Fvcountry VarChar(20)

declare @Ayear VarChar(20)

declare @Gender VarChar(20)

declare @Ftype VarChar(20)

declare @Fampos VarChar(20)

declare @Education VarChar(20)

declare @Children VarChar(20)

declare @Comptype VarChar(20)

declare @Compamount VarChar(20)

declare @Automob VarChar(20)

declare @Travel VarChar(20)

declare @Commitment VarChar(20)

declare @Debtloan VarChar(20)

set @cursor = c

OPEN @cursor

fetch next from @cursor into @ID

WHILE (@@FETCH_STATUS=0) BEGIN

Select @Ftime = Cast((select Ftime from Request1 Where ID = @ID) As Char)

IF (@Ftime <= 12)

Set @WeightFtime = 6

IF (@Ftime > 12) AND (@Ftime < 60)

Set @WeightFtime = 7

IF (@Ftime >= 60)

Set @WeightFtime = 9

Select @Ident = Cast((select Add_ident from Request1 Where ID = @ID) As Char)

IF (@Ident = 1)

Set @WeightIdent = 8

else

Set @WeightIdent = 7

Select @Wtermpres = Cast((select Wtermpres from Request1 Where ID = @ID) As Char)

IF (@Wtermpres <= 12)

Set @WeightWtermpres = 6

IF (@Wtermpres > 12) AND (@Wtermpres < 60)

Set @WeightWtermpres = 8

IF (@Wtermpres >= 60)

Set @WeightWtermpres = 9

Select @Wtermlast = Cast((select Wtermlast from Request1 Where ID = @ID) As Char)

IF (@Wtermlast <= 12)

Set @WeightWtermlast = 7

IF (@Wtermlast > 12) AND (@Wtermlast < 60)

Set @WeightWtermlast = 8

IF (@Wtermlast >= 60)

Set @WeightWtermlast = 9

Select @Wpaym = Cast((select Wpaym from Request1 Where ID = @ID) As Char)

IF (@Wpaym <= 30000)

Set @WeightWpaym = 4

IF (@Wpaym > 30000) AND (@Wpaym < 100000)

Set @WeightWpaym = 7

IF (@Wpaym >= 100000)

Set @WeightWpaym = 9

Select @Crsum = Cast((select Crsum from Request1 Where ID = @ID) As Char)

IF (@Crsum <= 50000)

Set @WeightCrsum = 9

IF (@Crsum > 50000) AND (@Crsum < 500000)

Set @WeightCrsum = 7

IF (@Crsum >= 500000)

Set @WeightCrsum = 5

Select @Region = Cast((select Weight from Region Where ID IN (SELECT RegionID from Request1 Where ID = @ID)) As Char)

Select @Workform = Cast((select Weight from Workform Where ID IN (SELECT WorkformID from Request1 Where ID = @ID)) As Char)

Select @Fvcountry = Cast((select Weight from Fvcountry Where ID IN (SELECT FvcountryID from Request1 Where ID = @ID)) As Char)

Select @Ayear = Cast((select Weight from Ayear Where AyearNM IN (SELECT Year(Bdate) from Request1 Where ID = @ID)) As Char)

Select @Gender = Cast((select Weight from Gender Where ID IN (SELECT GenderID from Request1 Where ID = @ID)) As Char)

Select @Ftype = Cast((select Weight from Ftype Where ID IN (SELECT FtypeID from Request1 Where ID = @ID)) As Char)

Select @Fampos = Cast((select Weight from Fampos Where ID IN (SELECT FamposID from Request1 Where ID = @ID)) As Char)

Select @Education = Cast((select Weight from Education Where ID IN (SELECT EducationID from Request1 Where ID = @ID)) As Char)

Select @Children = Cast((select Weight from Children Where ID IN (SELECT ChildrenID from Request1 Where ID = @ID)) As Char)

Select @Comptype = Cast((select Weight from Comptype Where ID IN (SELECT ComptypeID from Request1 Where ID = @ID)) As Char)

Select @Compamount = Cast((select Weight from Compamount Where ID IN (SELECT CompamountID from Request1 Where ID = @ID)) As Char)

Select @Automob = Cast((select Weight from Automob Where ID IN (SELECT AutomobID from Request1 Where ID = @ID)) As Char)

Select @Travel = Cast((select Weight from Travel Where ID IN (SELECT TravelID from Request1 Where ID = @ID)) As Char)

Select @Commitment = Cast((select Weight from Commitment Where ID IN (SELECT CommitmentID from Request1 Where ID = @ID)) As Char)

Select @Debtloan = Cast((select Weight from Debtloan Where ID IN (SELECT DebtloanID from Request1 Where ID = @ID)) As Char)

Set @MidWeight = Cast(ROUND((((ABS(@WeightFtime) + ABS(@WeightIdent) + ABS(@WeightWtermpres) + ABS(@WeightWtermlast) + ABS(@WeightWpaym) + ABS(@WeightCrsum) + ABS(@Region) + ABS(@Workform) + ABS(@Fvcountry) + ABS(@Ayear) + ABS(@Gender) + ABS(@Ftype) + ABS(@Fampos) + ABS(@Education) + ABS(@Children) + ABS(@Comptype) + ABS(@Compamount) + ABS(@Automob) + ABS(@Travel) + ABS(@Commitment) + ABS(@Debtloan)))/21),0) As Char)

IF (@MidWeight <= 6)

Update Request1 Set Offer = 'NO' Where ID = @ID

IF (@MidWeight > 6)

Update Request1 Set Offer = 'YES' Where ID = @ID

fetch next from @cursor into @ID

END

CLOSE @CURSOR

DEALLOCATE @CURSOR

DEALLOCATE c

End

Процедура формирования письма с решением

Исполняемый код процедуры описан в файле dbo.update_text

CREATE PROCEDURE dbo.update_text As

Begin

declare @cursor CURSOR

declare c CURSOR FOR

SELECT ID FROM Request1 where MessageText = null

declare @ID int

declare @Crsum money

declare @Term VarChar(20)

declare @ProdName VarChar(20)

declare @MessageText VarChar(5000)

declare @Offer VarChar(10)

declare @Prod VarChar(20)

set @cursor = c

OPEN @cursor

fetch next from @cursor into @ID

WHILE (@@FETCH_STATUS=0) BEGIN

Select @Offer = Cast((select Offer from Request1 Where ID = @ID) As Char)

Select @Crsum = Cast((select Crsum from Request1 Where ID = @ID) As money)

Select @Term = Cast((select Wnterm from Request1 Where ID = @ID) As Char)

Select @ProdName = Cast((Select ProdName from His_product where ProdConditID IN (Select ID_prod from His_prod_condit where ID_condit IN (Select ID from His_prodcondit where (@Crsum >= MinSum) and (@Crsum <= MaxSum) and (@Term >= MinTerms) and (@Term <= MaxTerms)))) As Char)

Select @Prod = Cast((Select count(ProdName) from His_product where ProdConditID IN (Select ID_prod from His_prod_condit where ID_condit IN (Select ID from His_prodcondit where (@Crsum >= MinSum) and (@Crsum <= MaxSum) and (@Term >= MinTerms) and (@Term <= MaxTerms)))) As Char)

IF (@Offer = 'YES') and (@Prod = 1)

BEGIN

Set @MessageText = Здравствуйте, Уважаемый(-ая) ' + (select FirstName from Request1 Where ID = @ID) + ' ' + (select ThirdName from Request1 Where ID = @ID) + '! Благодарим Вас за то, что обратили своё внимание на кредиты UniversityBank. Мы рады сообщить Вам, что по Вашей электронной заявке было принято положительное предварительное решение. Исходя из Ваших пожеланий, указанных в заявке, мы можем порекомендовать Вам обратить внимание на линейку наших кредитных продуктов '' + @ProdName + '. В ближайшее время наши сотрудники свяжутся с Вами для дальнейшего обсуждения деталей возможной выдачи кредита.'

Update Request1 Set MessageText = @MessageText Where ID = @ID

END

IF (@Offer = 'YES') and (@Prod = 0)

BEGIN

Set @MessageText = Здравствуйте, Уважаемый(-ая) ' + (select FirstName from Request1 Where ID = @ID) + ' ' + (select ThirdName from Request1 Where ID = @ID) + '! Благодарим Вас за то, что обратили своё внимание на кредиты UniversityBank. Мы рады сообщить Вам, что по Вашей электронной заявке было принято положительное предварительное решение. Исходя из Ваших пожеланий, указанных в заявке, мы пока не можем порекомендовать Вам один из наших кредитных продуктов, но мы готовы также и обсудить с Вами индивидуальные условия. В ближайшее время наши сотрудники свяжутся с Вами для дальнейшего обсуждения деталей возможной выдачи кредита.'

Update Request1 Set MessageText = @MessageText Where ID = @ID

END

IF @Offer = 'NO'

BEGIN

Set @MessageText = 'Здравствуйте, Уважаемый(-ая) ' + (select FirstName from Request1 Where ID = @ID) + ' ' + (select ThirdName from Request1 Where ID = @ID) + '! Благодарим Вас за то, что обратили своё внимание на кредиты UniversityBank. Мы с сожалением сообщаем Вам, что по Вашей электронной заявке было принято отрицательное предварительное решение, и в данный момент наш Банк не готов предоставить Вам кредит. В ближайшее время наши сотрудники свяжутся с Вами для оказания консультации по вопросу возможных условий выдачи кредита.'

Update Request1 Set MessageText = @MessageText Where ID = @ID

END

Update Request1 Set Message = 'NO' Where ID = @ID

fetch next from @cursor into @ID

END

CLOSE @CURSOR

DEALLOCATE @CURSOR

DEALLOCATE c

End

Процедура занесения заявки в базу

Исполняемый код процедуры описан в файле dbo.sp_RequestInsert

CREATE PROCEDURE dbo.sp_RequestInsert(@RegionID int, @WorkformID int, @Secname VarChar(100), @Firstname VarChar(100), @Thirdname VarChar(100), @Bdate datetime, @FvcountryID int, @Telnum VarChar (20), @Cellnum VarChar (20), @Email VarChar (50), @Crsum VarChar (50), @Wnterm int, @GenderID int, @Paspnum VarChar (50), @Dpasp datetime, @Infpasp VarChar (300), @Findex VarChar (20), @Farea VarChar (50), @Fcity VarChar (80), @Faddress VarChar (200), @Ftime int, @FtypeID int, @Add_ident binary (1), @Rindex VarChar (20), @Rarea VarChar (50), @Rcity VarChar (80), @Raddress VarChar (200), @Telreg VarChar (20), @FamposID int, @EducationID int, @ChildrenID int, @ComptypeID int, @Compname VarChar(200), @Compinn VarChar(20), @Compogrn VarChar(50), @Comppos VarChar(100), @Worknum VarChar(20), @Windex VarChar(20), @Warea VarChar(50), @Wcity VarChar(80), @Waddress VarChar(200), @CompamountID int, @Wtermpres int, @Wtermlast int, @Wpaym int, @AutomobID int, @TravelID int, @CommitmentID int, @DebtloanID int) As

Begin

Set NoCount Off

Declare @ID Int

Exec sp_newhyperkey @ID OutPut

Insert Into Request1 (ID,RegionID,WorkformID,Secname,Firstname,Thirdname,Bdate,FvcountryID,Telnum,Cellnum,Email,Crsum,Wnterm,GenderID,Paspnum,Dpasp,Infpasp,Findex,Farea,Fcity,Faddress,Ftime,FtypeID,Add_ident,Rindex,Rarea,Rcity,Raddress,Telreg,FamposID,EducationID,ChildrenID,ComptypeID,Compname,Compinn,Compogrn,Comppos,Worknum,Windex,Warea,Wcity,Waddress,CompamountID,Wtermpres,Wtermlast,Wpaym,AutomobID,TravelID,CommitmentID,DebtloanID) Values(@ID, @RegionID, @WorkformID, @Secname, @Firstname, @Thirdname, @Bdate, @FvcountryID, @Telnum, @Cellnum, @Email, @Crsum, @Wnterm, @GenderID, @Paspnum, @Dpasp, @Infpasp, @Findex, @Farea, @Fcity, @Faddress, @Ftime, @FtypeID, @Add_ident, @Rindex, @Rarea, @Rcity, @Raddress, @Telreg, @FamposID, @EducationID, @ChildrenID, @ComptypeID, @Compname, @Compinn, @Compogrn, @Comppos, @Worknum, @Windex, @Warea, @Wcity, @Waddress, @CompamountID, @Wtermpres, @Wtermlast, @Wpaym, @AutomobID, @TravelID, @CommitmentID, @DebtloanID)

End

Процедура генерации уникальных идентификаторов

Исполняемый код процедуры описан в файле dbo.sp_newhyperkey

CREATE procedure dbo.sp_newhyperkey @ret int out as

begin

declare @lastkey int

declare @empty bit

set @empty = 1

select @lastkey = id from main_sequence

if @@rowcount <> 0

set @empty = 0

insert into main_sequence (fdummy) values ('Y')

if @empty = 1

select @ret = id from main_sequence

else

begin

select top 1 @ret = id from main_sequence where id <> @lastkey

order by id desc

delete from main_sequence where id <> @ret;

end

end

ref.by 2006—2025
contextus@mail.ru