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

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

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

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

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

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

Создание экстрасети

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

В этом разделе рассматриваются три важных вопроса:

□ Реализация возможности просмотра заказов для Джо

□ Просмотр поставщиками назначенных им заказов

□ Построение третьей части конвейера — коннектора PipelineSupplierOK

Две первые задачи связаны с компонентом WroxCommerce и с построением средств для исследования базы данных через уровень представления. Третья задача будет реализована в проекте WroxProcessing.

Просмотр заназов

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

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

1. Создайте перечисление, хранящее возможные коды статуса заказа. Откройте проект WroxCommerce и добавьте в модуль Globals:

 Создание экстрасети

2. В коннекторе PipelineNotifyOwner мы установили статус заказа в значение 1, т. е. заказ находится в состоянии обработки. Этот код статуса позволит получить пока не завершенные заказы. Добавьте в объект Orders:

 Создание экстрасети

3. При администрировании мы будем чаще всего работать с одним заказом. Добавьте в объект Orders метод, возвращающий правильно сконфигурированный объект Order:

 Создание экстрасети

4. Добавьте в Orders функцию, возвращающую статус заказа в текстовом виде:

 

 Создание экстрасети

Создание экстрасети

5. Завершая текущую работу с WroxCommerce, добавьте в объект Catalog метод, возвращающий поставщика:

 Создание экстрасети

6. Вернемся в проект Visual InterDev. Сначала нужно отредактировать страницу default.asp, хранящуюся в папке admin. Найдите в нижней части кода оператор Case Else и добавьте:

 Создание экстрасети

7. Воспользуемся построенными на странице admin/default .asp методами. Для получения списка новых заказов потребуется метод GetNewOrders. Добавьте следующий код в оператор case верхней части страницы (где записаны операторы управления adddepartment и editproduct):

 Создание экстрасети

Создание экстрасети

 

8. Средства администрирования должны содержать функции, выполняющие вывод информации и предоставление данных о заказе методу RenderOrder. Однако при реализации просмотра заказа необходимо учитывать два момента:

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

□ Если же заказом интересуются другие люди (покупатель или поставщик), конфиденциальная информация не выводится.

Для указания на вывод привилегированных данных применяется параметр isAdmin. Метод RenderOrder страницы site.asp рассматривается ниже. Для простоты разобьем код на части, а также используем несколько операторов Response .Write, что позволит исключить дополнительное деление в форматирующих тегах.

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

 Создание экстрасети

Затем покажем некоторую информацию о заказе, в частности идентификатор заказа, дату создания, состояние (фиксирован или отменен) и внесенные в заказ данные. Выведем статус заказа, применив вспомогательную функцию GetStatusText объекта Orders в комбинации с кодом статуса:

 Создание экстрасети

Создание экстрасети

 

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

 Создание экстрасети

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

 Создание экстрасети

Создание экстрасети

Создание экстрасети

 

 

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

 Создание экстрасети

‘ администратору предоставим сведения о поставщике If IsAdmin Then

Dim supplier Set supplier =

Visit.Catalog.GetSupplier(parts("SupplierlD")) If Not supplier.EOF Then

1 покажем поставщика

Response.Write "<trxtd class=heading>" Response.Write "Supplier:"

Response.Write "</tdxtd class=std colspan=2>" Response.Write supplier("Name") Response.Write "<br>"

Response.Write supplier("SalesContactFirst") & " " &

supplier("SalesContactLast") Response.Write "<br>" Response.Write "<a href=""mailto:" Response.Write supplier!"SalesContactEMail")

Response.Write   """>"

Response.Write supplier("SalesContactEMail") Response.Write "</a>" Response.Write "</tdx/tr>"

1 разделитель

Response.Write "<tr><tdxbr></tdx/tr>" End If

supplier.Close

Set supplier = Nothing

End If

Итак, реализован вывод части заказа и ее статуса. Статус заказа напрямую связан с его текущим положением в конвейере. Например, если статус равен 2, мы ожидаем подтверждение от поставщика, о чем и сообщаем пользователю с помощью оператора Select Case.

В контексте статуса заказа интересно применение метода объекта Orders для извлечения текстового сообщения в виде строки, хотя для статуса части заказа мы пользуемся кодом непосредственно из объекта OrderParts. Дело в том, что статус заказа зависит от структуры объекта OrderProcessor. Мы не хотим создавать в данной точке объект OrderProcessor, поскольку не нужна транзакция. Поэтому мы применяем Select Case и вводим непосредственно в код сообщения, выводимые пользователю. При изменении структуры конвейера придется изменить эту часть кода.

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

 Создание экстрасети

‘ следующий lines.MoveNext

LOOP

lines.Close

Set lines = Nothing

‘ итоги

Response.Write "<trxtd colspan=2 align=right class=std>" Response.Write "Shipping (" Response.Write parts("ShippingName") Response.Write "):"

Response.Write "</tdxtd align=right class = std>" Response.Write FormatPrice(parts("Shippingcharge")) Response .Write "</tdx/tr>"

Response.Write "<trxtd colspan=2 align=right class=std>" Response.Write "VAT @ "

Response.Write parts("TaxRate") * 100 & "V Response.Write " :"

Response .Write "</tdxtd align=right class = std>" Response.Write FormatPrice(parts("TaxCharge")) Response .Write "</tdx/tr>"

Response.Write "<trxtd colspan=2 align=right class=heading>" Response.Write "Total:"

Response.Write "</tdxtd align=right class=heading>" Response.Write FormatPrice(parts("Total")) Response.Write "</tdx/tr>"

‘ следующий part s.MoveNext

Response.Write "<trxtdxbrx/tdx/tr>" Loop

parts.Close Set parts = Nothing

End Function

 Создание экстрасети

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

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

Итак, мы создали средства доступа к заказам. Теперь нужно показать заказ поставщику.

Обеспечение доступа для поставщиков

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

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

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

Нам доверяют

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