Страница 1 из 1

...И снова по связанным записям - логика по структуре

Добавлено: 13 апр 2017, 17:07
alcompstudio
Добрый день!

Есть примерная структура:

Заказчики
- Заказы
-- Товары на продажу
Производимые товары
- Затраты на производство


Есть записи (по структуре):

Заказчик 1 -> Заказ 1.1 -> Товар на продажу 1.1.1,
Заказ 1.2 -> Товар на продажу 1.2.1
Заказчик 2 -> Заказ 2.1 -> Товар на продажу 2.1.1,
Заказ 2.2 -> Товар на продажу 2.2.1

Производимый товар 1 (идентичен Товар 1.1.1) -> Затраты на производство 1.1
Производимый товар 2 (идентичен Товар 2.1.1) -> Затраты на производство 2.1

Нужно "отнести" требуемые Затраты на производство по определенным Заказам и Заказчикам.

при этом возможная сруктура:

Заказчики
- Заказы
-- Товары на продажу/Производимые товары
--- Затраты на производство

не подходит, т.к. тут исходя из особенностей бизнес-процессов записи затрат не должны сразу по структуре относиться к сущности Заказы (т.е. сущность затраты по текущей логике НЕ может являться дочерней по структуре, через Товары - сущности Заказы), а присоединять их отдельно через связанные записи.

Чтобы грубо говоря, мне списать Затраты на производство 1.1 и "увидеть" их логику по цепочке Товары на продажу - Заказы - Заказчики, нужно связать Затраты на производство 1.1 сначала с записью (например) Товар на продажу 1.1.1, затем связать (отдельно) с записью Заказ 1.1, а затем - с записью Заказчик 1.

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

Понятно, что запись может связывается с любой другой записью напрямую без соблюдения структуры подчинения (например, в вышеуказанном примере вообще можно связать Производимый товар 1 - Товар на продажу 2.2.1 - Заказ 1.1 - Заказчик 2 - т.е. сделать вопреки какой-нибудь логике, просто связать), но вот хотелось бы иметь возможность выбирать варианты связывания записей, например "следовать логике иерархической структуры родственных сущностей" или "не следовать логике ...структуры". Т.е. в настройках сущности давать выбор - как строить структуру связанных записей. И, если, "стоит галочка" - "следовать логике...", то прикрепив запись к какой-то другой записи - сразу она "прикреплялась" вверх по "дереву структуры" тех сущностей.

Это нужно для составления формул и функций, чтобы не делать последовательного связывания записей, если в них должна присутствовать логика дочерних/родительских сущностей вверх по структуре. Т.е. я не смогу сделать функцию/формулу, которая отразит общую сумму списанных Затраты на производство 1.1 для Заказчик 1, Заказ 1.1, Товар на продажу 1.1.1, если эти "затраты", помимо Товар на продажу 1.1.1 отдельно не связать с Заказ 1.1 и Заказчик 1.

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

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