[Решено частично] Создание сложных сущностей

Главные вкладки

Аватар пользователя liko_1691 liko_1691 13 сентября 2012 в 20:45

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

пример 1:

заказ на оптово-розничную базу (сложная сущность)

1. название организации заказчика

2. заказ (включает в себя сущности, измеряющиеся в различных единицах)
2.а. кока-кола. 30 паков
2.б. сахарный песок. 100 килограмм
2.в. мыло хозяйственной. 200 штук
...

3. примечания (текстовое поле)

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

пример 2:

заказ 1.

цемент 2 мешка
кирпич кремлевский 1000 штук
паркет дубовый 100 кв.м.

заказ 2.

цемент 10 мешков
кирпич кремлевский 8000 штук
песок речной 2 тонны

суммарный заказ.

цемент 12 мешков
кирпич кремлевский 9000 штук
паркет дубовый 100 кв.м.
песок речной 2 тонны

подскажите пожалуйста как это реализовать или где о чем-то подобном можно почитать

Комментарии

Аватар пользователя roman-yrv roman-yrv 14 сентября 2012 в 13:46

Да, при вводе заказа получается, надо вводить данные master-detail.

Я думаю, можно поступить так.

Тип узла - организация
Тип узла - вид товара (ед-цы измерения можно задать через таксономию)
Тип узла - заказ

А вот для заказа придется разработать что-то вроде составного ССК-поля, представляющего товар в этом заказе.

API Друпала позволяет разрабатывать свои типы полей, только нужно разбираться, как это делать.
В этой книге (http://content-management-systems.info/drupal/book/isbn-9785845917430) рассказывается на примере поля для выбора цвета, как можно создать новый тип поля.

И в этом поле будут след. данные.

- nid заказа
- nid вида товара
- количество (штук, кг, мешков и т.д.)

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

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