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

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

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

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

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

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

Создание объекта Orders

 Создание объекта Orders

Свойство Orders похоже на созданное ранее свойство объекта Customers, возвращающее экземпляр объекта. При первом вызове формируется один экземпляр объекта Orders. Кэшированием копия хранится на протяжении всего времени существования объекта Visit.

 Создание объекта Orders

Создание объекта Orders

Создание объекта Orders

Создание объекта Orders

 

 

 

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

Приведенный код похож на код объекта Customers, поэтому обсудим только методы SplitBasket и CalculatePartTotals.

В методе SplitBasket мы сначала создаем новую строку в таблице Orders, затем добавляем идентификатор покупателя (свойство CustomerlD объекта Visit будет создано позже), обновляем строку и получаем новый идентификатор для заказа. Этот идентификатор возвращается методом:

 Создание объекта Orders

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

 Создание объекта Orders

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

OrderPart("subtotal") = SubTotal

OrderPart.Update

CalculatePartTotals OrderPart("partid")

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

Public Function CalculatePartTotals(ByVal PartlD As Long) Dim Part As New Recordset

Part.Open "select * from OrderParts where PartID=" & PartlD,  m_utility.DB.DB, adOpenKeyset, adLockOptimistic

PartC’taxcharge") = Part("subtotal" ) * Part("taxrate") Part("total") = Part("subtotal") + Part("shippingcharge")  + PartC’taxcharge")

Part.Update

Part.Close

Set Part = Nothing

End Function

Трюк состоит в выделении в базе данных нужной строки OrderParts и в обновлении столбцов TaxCharge и Total на основе информации из столбцов TaxRate и Shipping-Charge. Изменение TaxRate и установка Shippingcharge обсуждаются ниже.

Создание объекта Order

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

 Создание объекта Orders

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

 Создание объекта Orders

3. CheckLoad вызывается из любого свойства, возвращающего информацию о заказе. Выделяется строка, а содержащиеся в ней значения записываются в закрытые переменные объекта:

 Создание объекта Orders

Создание объекта Orders

 

4. Наконец, формируем группу свойств, возвращающих информацию о заказе. Обратите внимание, что большинство свойств вызывает CheckLoad:

 Создание объекта Orders

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

Нам доверяют

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