OP-TED / eForms-SDK

eForms is the notification standard for public procurement procedures in the EU. The eForms SDK is a collection of resources providing the foundation for building eForms applications.
Creative Commons Attribution 4.0 International
59 stars 30 forks source link

Why is BT-630 mandatory in NTD-20/21? #978

Open ai-ffrankenberger opened 4 months ago

ai-ffrankenberger commented 4 months ago

The following rule in the SDK makes "BT-630 Deadline for Receipt Expression of Interest" mandatory in NTD-20 and NTD-21 for Negotiated Procedures with Call for Competition:

<entry key="rule|text|BR-BT-00630-0027">'Deadline for receipt of expressions of interest' (BT-630(d)-Lot) is mandatory in notice type '20 – Contract notice – general directive, light regime' except under following condition: 'Type of procedure' (BT-105) is not one of the following: 'Competitive dialogue'; 'Innovation partnership'; 'Negotiated with prior publication of a call for competition / competitive with negotiation'; 'Other multiple stage procedure'; 'Restricted'</entry>

<assert id="BR-BT-00630-0027" role="ERROR" diagnostics="BT-630_d_-Lot" test="count(cbc:EndDate) > 0 or not(../../../../../../../cac:TenderingProcess/cbc:ProcedureCode/normalize-space(text()) = 'neg-w-call')">rule|text|BR-BT-00630-0027</assert>

In this procedure type (neg-w-call) there is no Call for Expressions of Interest. So why is this BT mandatory?

Thank you!

YvesJo commented 4 months ago

Hi, For this Business question, I invite you to get in touch with DG GROW. Following the Annex, BT-630 is CM. For forms 10 to 14, for which BT-105 may also be neg-w-call, BT-630 is also mandatory. Technically, the rule is fired only when ND-InterestExpressionReceptionPeriod exists, which may only exist when BT-630 exists (no empty element allowed) therefore in absence of this node, the rule will not get fired and the existence of BT-630 not checked by CVS. KR

ai-ffrankenberger commented 4 months ago

Thank you for your answer. Is there a way to find out, when a rule is fired and when it isn't? If you just look at the content of the rule's test attribute there is no indication on that the rule is not fired if the parent element is missing. Is there kind of a thumb rule that we don't know yet?

YvesJo commented 4 months ago

You may have a look at the context attribute of the rule element encapsulating the assert, in this case: context="/*/cac:ProcurementProjectLot[cbc:ID/@schemeName='Lot']/cac:TenderingProcess/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/efext:EformsExtension/efac:InterestExpressionReceptionPeriod[$noticeSubType = '20']"