Мой сайт
Четверг, 14.08.2025, 05:06
Меню сайта
Мини-чат
Наш опрос
Оцените мой сайт
Всего ответов: 0
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0
Форма входа
Главная » 2013 » Июль » 17 » Урок 4 - Связка объектов "Сделка"
06:48
 

Урок 4 - Связка объектов "Сделка"

В предыдущем уроке мы изучили с вами новое значение по умолчанию parent для полей-ссылок. В этом разделе мы познакомимся с новым системным объектом "Сделка".

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

Структура базы для продажи одного вида продукта

Эта схема проста и удобна, если мы продаем по одному виду продукта. Например, мы продали 5 автомобилей. Деньги по ним пришли пришли двумя платежами, 50% предоплата и 50% по факту отгрузки. Отгрузка частями по этой схеме тоже возможна.

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

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

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

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

Короткая схема сделки

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

Подробная схема платежа в сделке

Мы добавили общий дочерний объект "Продукт - Платеж" для объектов "Продукт" и "Платеж". В этом объекте и будут связи платежа с продуктами.

На этой схеме описан следующий случай продажи.

Мы продаем клиенту карандашей на 8 рублей и ластиков на 6 рублей. Общая сумма сделки составляет 14 рублей. На дворе кризис и у клиента имеются финансовые трудности. Он просит отгрузить товар по 50% предоплате, остальное обещает погасить в ближайшие полгода. Входим в положение клиента и соглашаемся.

Клиент платит 7 рублей. В объект "Платеж" мы добавляем 7 рублей, далее программа САМА добавляет в объект "Продукт - Платеж" две записи, одну для карандаша (4 рубля), другую для ластика (3 рубля). Почему получилось такое разделение по деньгам на 3 и 4 рубля? Все просто. Программа разделила платеж пропорционально стоимости продуктов. Вернее даже пропорционально суммам, которые осталось заплатить по каждому продукту.

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

Аналогичная связь объектов реализована и для отгрузок. Для объектов "Продукт" и "Отгрузка" добавлен общий дочерний объект "Продукт - Отгрузка".

Далее показана полная структура объектов для Сделки.

Полная схема Сделки

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

Давайте посмотрим как это будет выглядеть в программе.

Откройте Сделки (из меню Данные - Сделки) и создайте новую сделку. Здесь мы намеренно не добавляем сделку из карточки клиента - сейчас это не важно.

Добавление сделки

Добавьте продукт Карандаш. В поле "Продукт" выберите Карандаш, в поле "К оплате" укажите 8 и в поле "К отгрузке" укажите 8.

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

Добавьте продукт Ластик, к оплате 6, к отгрузке 3.

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

Список продуктов сформирован. Автоматически посчитана общая сумма сделки и общее количество к отгрузке.

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

Добавление платежа

Теперь отгрузим половину продуктов. На вкладке "Отгрузки" добавим отгрузку и для каждого продукта укажем половину общего количества.

Добавление отгрузки

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

Теперь посмотрим на сделку.

Сделка

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

Интересно, что скажет клиент, получив бандеролью полтора ластика?

На этом все. Приступайте изучать третий прототип.

Просмотров: 132 | Добавил: xclatit | Рейтинг: 0.0/0
Всего комментариев: 0
Поиск
Календарь
«  Июль 2013  »
Пн Вт Ср Чт Пт Сб Вс
1234567
891011121314
15161718192021
22232425262728
293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz