Показать сообщение отдельно
Старый 12.09.2017, 21:36   #1  
jopagames is offline
jopagames
Участник
 
45 / 24 (1) +++
Регистрация: 22.11.2011
Доп.Соглашение
Коллеги, общий привет.

Подскажите, пожалуйста, как лучше прикрутить к системе Доп.Соглашения к Договорам?
Я вот думал-думал, но идей пока никаких. (Точнее есть, но все неудобные)

Имеем.
1. Таблицу договоров (Customer Agreement)
2. К ней добавляем новую сущность - строки (Customer Agreement Lines) в которые вносим услуги (или товары) и печатаем их список с договором.
Предположим, по договору мы обязуемся с ДатыНачала по Дату Окончания оказывать ежедневно клиенту услугу XXX. Наша задача - выставить клиенту правильный счёт за произвольный период.
3. Через неделю вдруг выясняется, что клиент хочет с середины месяца вместо услуги XXX получать YYY и надо составить (и распечатать!!!) ДопСоглашение, меняющее по сути условия основного договора.

И вот через какие сущности это всё увязать - для меня загадка.
Либо ДопСоглашение - это полная, но измененная копия строк оригинального договора, но с другими товарами\датами\ценами.
Мы тогда старый договор вообще не учитываем, а считаем всё по строкам Допника на конкрентую дату (шагаем по периоду с шагом в 1 день и смотрим, активен ли допник)

Либо это отдельная таблица, которая цепляется к строке договора и её "подменяет". Тогда вопрос, как, собственно, это отражается в самом договоре? Как это будет видеть и оформлять менеджер?

Либо стоки договора - это, вообще, некая "книга операций": типа 10 числа добавили товар ХХХ, а 15 числа удалили товар ХХХ, а вместо добавили товар YYY и теперь до конца периода считаем его.
А тогда вопрос: как из этой книги операций выделить отдельный допник для печати? (в строке договора какой-то "Код ДопСоглашения" вводить? А визуально как это будет?)
+тогда ещё нужны чёткие правила некие (а какие?), которые не позволят, например, "перекрывать" в рамках действия договора даты Допников (их может быть несколько в одном договоре)

Словом, кто понял про что я спрашивал - поделитесь идеей, пожалуйста ))