Поддержка сайта

Высокие позиции в поисковой системе, на прямую зависят от развития вашего сайта.

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

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

Создание сайтов

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

Реализация доступа поставщиков

1. Расширим функциональные возможности объектной модели и изменим проект WroxCommerce. Теперь нужно добавить похожий MeTOfl(CheckSupplierLogon) в объект Catalog. Этот метод будет получать адрес электронной почты поставщика и устанавливать сеансовую переменную для указания идентификатора поставщика, регистрирующегося на сайте.

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

Добавьте в объект-Catalog новый метод:

 Реализация доступа поставщиков

2. Аналогично свойству CustomerlD объекта visit, нам потребуется свойство SupplierlD. Добавьте в объект Visit закрытую переменную:

 Реализация доступа поставщиков

3. Измените свойство Configure объекта Visit таким образом, чтобы можно было извлечь идентификатор поставщика из объекта Session при любом создании объекта visit:

 Реализация доступа поставщиков

4. В тот же объект добавьте два свойства и метод, проверяющие регистрацию поставщика на сайте:

 Реализация доступа поставщиков

5. Модифицировав объектную модель, вернемся на уровень представления.

Отредактируем код проверки результатов регистрации, чтобы выяснить, тот ли это поставщик. Измените код admin/default.asp следующим образом:

 Реализация доступа поставщиков

Реализация доступа поставщиков

 

При заполнении поля пароля поставщик может ввести secret или адрес электронной почты.

Мы заполнили таблицу Suppliers данными, причем указали адрес alex@coffeesupplier.com. Используем эти данные для проверки.

6. Для работы с сайтом поставщику потребуется иной набор команд, чем владельцу. Используем метод IsSupplierLoggedOn объекта visit.

Нужно добавить оператор If.. .Then.. .Else так, чтобы заключить в него весь блок Select Case, выполняющий основные действия на странице администрирования. Перед оператором Select Case на странице default.asp введите код:

 Реализация доступа поставщиков

После этого оператора добавьте:

 Реализация доступа поставщиков

Нашей целью является запуск первого оператора Select Case для всех зарегистрировавшихся пользователей, не являющихся поставщиками, и выполнение второго оператора Select Case для поставщиков.

Первый оператор выбора управляет возможностями, уже реализованными на странице admin/default. asp, а второй оператор заведует новыми операциями, предназначенными для поставщиков. Делением всех операций на две категории в Select Case управляет свойство IsSupplierLoggedOn, предотвращающее несанкционированное получение поставщиком строки запроса со страницы (с целью получения доступа к привилегированным операциям). Можно предложить следующую структуру кода:

 Реализация доступа поставщиков

Реализация доступа поставщиков

 

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

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

Для этого можно выбрать все части заказов данного поставщика, скомбинировав запрос с кодом статуса statusProcessing, который установлен в модуле Globals проекта WroxCommerce в значение 1. Соответствующий запрос SQL:

 Реализация доступа поставщиков

Реализация доступа поставщиков

При адаптации запроса SQL нужно учесть используемые переменные, поэтому добавьте в объект Orders метод:

 Реализация доступа поставщиков

8. Показывая заказы, мы должны предоставлять поставщику сведения только о "его собственных" частях заказа, поэтому придется изменить функцию RenderOrder. Но сначала добавьте в admin/default .asp код вывода приостановленных заказов. Во второй оператор Select Case (относящийся к поставщику) добавьте:

 Реализация доступа поставщиков

Реализация доступа поставщиков 

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

9. Добавьте в объект Orders метод, позволяющий извлекать нужную информацию:

Реализация доступа поставщиков 

10. Добавьте метод в объект Order (но не в другой объект):

 Реализация доступа поставщиков

11. На странице site.asp измените вспомогательную функцию RenderOrder:

 

 Реализация доступа поставщиков

Реализация доступа поставщиков

12. Основная цель данного этапа — показать поставщику положение заказа в конвейере. Требуется маленькая кнопка, нажатием на которую поставщик сообщит о готовности отгрузить заказ. Затем мы выполним авторизацию кредитной карточки покупателя и уведомим поставщика о том, что можно приступить к отгрузке. Добавьте в admin/default. asp:

 Реализация доступа поставщиков

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

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

Позначенню в столбце Status таблицы OrderParts определяем состояние заказа в конвейере и допустимость продолжения обработки, когда поставщик готов к отгрузке. Поставщик может инициировать дальнейшую обработку только для заказов со статусом 2 (можно ли исполнить заказ?) и 5 (можно ли отгрузить заказ?). Например, Status равный 3 показывает, что процессор обязан обработать кредитную карточку. В этом случае поставщик не может продолжить обработку заказа в конвейере, поскольку это должна сделать Джо.

13. Для инициализации обработки заказа добавьте в admin/default .asp:

 Реализация доступа поставщиков

Сначала создается экземпляр объекта OrderProcessor, а затем метод Go продвигает заказ по конвейеру. Выполняются те же действия, что и при вызове метода Go из метода PlaceOrder объекта WroxCommerce.Orders.

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

Однако ничего не произойдет, если не сообщить процессору, что он должен сделать…

Читайте так же:
Not found

Нам доверяют

Интернет магазин