From c1e32d840b81ce84f59e58b498ab9f4a1dfee3cf Mon Sep 17 00:00:00 2001 From: msyu Date: Fri, 6 Jun 2025 18:11:05 +0300 Subject: [PATCH] intermediate draft 3 --- agreement.cfm | 6 ++-- abstract_service_del.cfm => agreement_del.cfm | 33 ++++++++++--------- contract.cfm | 3 +- 3 files changed, 22 insertions(+), 20 deletions(-) rename abstract_service_del.cfm => agreement_del.cfm (58%) diff --git a/agreement.cfm b/agreement.cfm index aac3ae6..8ce9ec8 100644 --- a/agreement.cfm +++ b/agreement.cfm @@ -159,7 +159,7 @@ Соглашение просто объединяет правки строк спецификации в пакет и оформляет их документом (в случае с допником). То есть версии строк существуют не сами по себе, а связаны с конкретным соглашением. Между прочим, это означает, что в рамках одного доп. соглашения мы не можем сделать 2 изменения строки, например 2 разные цены с разных дат - нужно оформлять отдельными допниками. -Можно назвать нулевое соглашение базовым, а остальные дополнительными. (наверное, можно было бы синтезировать базовое соглашение с NULL номером) +Можно назвать нулевое соглашение базовым, а остальные дополнительными. (наверное, можно было бы синтезировать базовое соглашение с NULL номером, но NULL проблематично включить в первичный ключ, а любое специальное значение будет нарушать внешний ключ) Есть ли понятие текущего соглашения? Есть ли понятие действующего соглашения, или у нас все действуют, или строки из недействующего соглашения не должны участвовать в цепочке (тогда, видимо, не удастся активировать соглашение задним числом, цепочка может разрушиться) Если к соглашению нет измененных строк спецификации, в нем нет большого смысла (но изменения строк надо к чему-то приписывать). @@ -172,8 +172,8 @@ select - i.specification_item_uid - i.agreement_version /*лучше читается, когда все берется из резалтсета*/ + iv.specification_item_uid + ,iv.agreement_version /*лучше читается, когда все одинаково берется из резалтсета*/ ,i.svc_id ,svc.svc ,svc.code diff --git a/abstract_service_del.cfm b/agreement_del.cfm similarity index 58% rename from abstract_service_del.cfm rename to agreement_del.cfm index d5299cc..c3e45aa 100644 --- a/abstract_service_del.cfm +++ b/agreement_del.cfm @@ -4,35 +4,36 @@ - - + + - - s.service_id + + siv.specification_item_uid + siv.agreement_version m.modifier - service s + specification_item_version siv left outer join modifier m on (s.modifier_id=m.modifier_id) - s.abstract_service_id + s.agreement_id 2 desc - + - select a.code, a.abstract_service - FROM abstract_service a - where a.abstract_service_id= + select a.code, a.agreement + FROM agreement a + where a.agreement_id= @@ -53,9 +54,9 @@ Удаление абстрактной услуги (номенклатурной позиции, строки каталога услуг) - #qDecoration.abstract_service# - - [#abstract_service_id#] + #qDecoration.agreement# + + [#agreement_id#] diff --git a/contract.cfm b/contract.cfm index a11866e..6d279f5 100644 --- a/contract.cfm +++ b/contract.cfm @@ -216,6 +216,7 @@ + Создание базового соглашения надо автоматизировать, но пока вручную. @@ -245,7 +246,7 @@ - любопытное последствие использования составного ключа: отпадает желание делать для сущности самостоятельный реестр (может быть, только если есть явная сущность-владелец, как договор для соглашения) + любопытное последствие использования составного ключа: отпадает желание делать для сущности самостоятельный реестр (может быть, только если есть явная сущность-владелец, как договор для соглашения). Это аналогично отразится на структуре ReST API URL, если вдруг