Нужен функционал по аналогии с бухгалтерским учётом - двойная запись.
Счёт дебета, счёт кредита, у каждого счёта есть набор аналитик (другие объекты системы), сумма транзакции, кол-во транзакции.
Суть вопроса: как сделать так, чтобы при выборе в окне ввода транзакции счёта дебета или кредита отображался список его аналитик (для каждого счёта список разный), каждая из аналитик которой была в виде, например, выпадающего списка его объектов (по всем классам системы).
Пример работы функционала:
- Создаём счёт №10, указываем для него аналитики “Материалы” и “Склады” (это два класса со своими объектами).
- Создаём счёт №60, и указываем для него аналитики “Контрагенты” и “Договоры” (также два разных класса системы со своими объектами и со своей взаимосвязью).
- Создаём транзакцию, в которой предлагается выбрать счёт дебета и счёт кредита:
- выбираем счёт дебета №10 и для него генерируется на форме два поля “Номенклатура” и “склад”, при этом в каждом поле я могу выбрать соответствующие объекты класса.
- выбираем счёт кредита №60 и для него, по аналогии, отображаются поля “Контрагент”, а потом выбираем договор, который связан с ранее выбранным контрагентом (классы имеют связь друг с другом).
Есть ли пример реализации подобного функционала?
Какую технологию использовать?
Если есть возможность - предложите вариант архитектуры классов. Важно, чтобы при добавлении класса в систему, он становился бы доступным для выбора в качестве аналитики в при настройке счёта учёта.
В чём глобальный смысл - универсальная система учёта, прежде всего финансов, которую можно настроить “на лету” на уровне пользователя. Выполняемые отдельные задачи и процессы BPM генерируют транзакции (по шаблонам), которые позволяют автоматизировать финансовый учёт и отчётность (завершается это всё стандартной финансовой отчётностью, а также отчётами в натуральном выражении, при использовании соответствующих аналитик).
Буду благодарен за любую ссылку на пример реализации, если такие “звери” уже кем-то делались.