-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCommon operations.txt
129 lines (76 loc) · 8.43 KB
/
Common operations.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Reference a previous publication¶
If the Previous publication concerning this procedure is neither a prior information notice nor a periodic indicative notice (PIN), or if the PIN has a single /*/cac:ProcurementProjectLot (Object) element, then discard /*/cbc:ID. In this case, the previous publication concerning this procedure is the OCDS release with the same ocid as this release and with the nearest earlier date to this release.
Otherwise, if the Previous publication concerning this procedure is a prior information notice or periodic indicative notice that has multiple /*/cac:ProcurementProjectLot (Object) elements, add a RelatedProcess object to the relatedProcesses array, set its .id to '1', add 'planning' to its .relationship array, set its .scheme to 'eu-oj' (or to a scheme of your choice if outside the EU), and map /*/cbc:ID to .identifier.
Add a complaints statistic¶
Add a Statistic object to the statistics array, set its .relatedLot to the value of ancestor::efac:LotResult/efac:TenderLot/cbc:ID, set its scope to 'complaints', and set its .id (string) sequentially across all notices for this procedure. For example, if a first notice for a given procedure has nine statistics, it uses id's '1' through '9'. A second notice for the same procedure then uses id's '10' and up, etc.
Add a bids statistic¶
Add a Statistic object to the bids.statistics array, set its .relatedLot to the value of ancestor::efac:LotResult/efac:TenderLot/cbc:ID, and set its .id (string) sequentially across all notices for this procedure. For example, if a first notice for a given procedure has nine bid statistics, it uses id's '1' through '9'. A second notice for the same procedure then uses id's '10' and up, etc.
Get the document for a document reference¶
Get the Document object in tender.documents whose .id is equal to the document reference's /cbc:ID. If none exists yet, add a Document object to tender.documents and set its .id to the document reference's /cbc:ID.
Get the participation fee for a document¶
If the value of ancestor::cac:ProcurementProjectLot[cbc:ID/@schemeName] is 'Part', get the ParticipationFee object in tender.participationFees whose .id is equal to cac:CallForTendersDocumentReference/cbc:ID. If none exists yet, add a ParticipationFee object to tender.participationFees and set its .id to the value of ancestor::cac:CallForTendersDocumentReference/cbc:ID.
If the value of ancestor::cac:ProcurementProjectLot[cbc:ID/@schemeName] is 'Lot', get the lot for the ProcurementProjectLot and get the ParticipationFee object in the lot's .participationFees whose .id is equal to cac:CallForTendersDocumentReference/cbc:ID. If none exists yet, add a ParticipationFee object to the lot's .participationFees and set its .id to the value of ancestor::cac:CallForTendersDocumentReference/cbc:ID.
Parties¶
Add a party¶
Add an Organization object to the parties array, and set its .id (string). A party's .id needs to be consistent across all notices. It is recommended to implement a register of organization identifiers to assign consistent identifiers. For more information, see the OCDS documentation.
Get the organization for a company¶
Get the Organization in parties whose id is equal to the value of ancestor::efac:Organization/efac:Company/cac:PartyIdentification/cbc:ID. If none exists yet:
Add an Organization to parties
Set its .id to the value of the ancestor::efac:Organization/efac:Company/cac:PartyIdentification/cbc:ID.
Get the organization for a touchpoint¶
Get the Organization in parties whose id is equal to the value of ancestor::efac:TouchPoint/cac:PartyIdentification/cbc:ID. If none exists yet:
Add an Organization to parties
Set its .id to the value of ancestor::efac:TouchPoint/cac:PartyIdentification/cbc:ID
Set its .identifier.id to the value of ancestor::efac:Organization/efac:Company/cac:PartyLegalEntity/cbc:CompanyID
Set its .identifier.scheme.
Get the organization for the buyer¶
Get the Organization in parties whose .id is equal to the value of ancestor::cac:ContractingParty/cac:Party/cac:PartyIdentification/cbc:ID. If none exists yet:
Add an Organization to parties
Set its .id to the value of ancestor::cac:ContractingParty/cac:Party/cac:PartyIdentification/cbc:ID
Add 'buyer' to it's .roles
Get the organization for a tenderer¶
Get the Organization in parties whose .id is equal to the value of ancestor::efac:TenderingParty/efac:Tenderer/cbc:ID. If none exists yet:
Add an Organization to parties
Set its .id to the value of ancestor::efac:TenderingParty/efac:Tenderer/cbc:ID
Add 'tenderer' to it's .roles
Get the person for an ultimate beneficial owner¶
Get the Organization in parties whose id is equal to the value of ancestor::efac:Organization/efac:Company/cac:PartyIdentification/cbc:ID. If none exists yet:
Add an Organization to parties
Set its .id to the value of ancestor::efac:Organization/efac:Company/cac:PartyIdentification/cbc:ID.
Get the Person in the organization's .beneficialOwners array whose id is equal to the value of ancestor::efac:UltimateBeneficialOwner/cbc:ID. If none exists yet:
Add a Person to .beneficialOwners
Set its .id to the value of ancestor::efac:UltimateBeneficialOwner/cbc:ID.
Note ancestor::efac:UltimateBeneficialOwner/cbc:ID is assumed to be a unique within the scope of the contracting process.
Get the organization for an organization technical identifier reference¶
Get the Organization object in parties whose .id is equal to the organization technical identifier reference's /cbc:ID. If none exists yet, add an Organization object to parties and set its .id to the organization technical identifier reference's /cbc:ID.
Lots and items¶
Get the lot for a ProcurementProjectLot¶
Get the Lot in tender.lots whose .id is equal to the value of ancestor::cac:ProcurementProjectLot/cbc:ID. If none exists yet, add a Lot to tender.lots and set its id to the value of ancestor::cac:ProcurementProjectLot/cbc:ID.
Get the lot group for a ProcurementProjectLot¶
Get the LotGroup in tender.lotGroups whose .id is equal to the value of the XPath ancestor::cac:ProcurementProjectLot/cbc:ID. If none exists yet, add a LotGroup to tender.lotGroups and set its id to the value of the XPath ancestor::cac:ProcurementProjectLot/cbc:ID.
Get the item for a ProcurementProjectLot¶
Get the Item in tender.items whose .relatedLot is equal to the value of ancestor::cac:ProcurementProjectLot/cbc:ID. If none exists yet, add an Item to tender.items, set its .id incrementally and set its .relatedLot to the value of ancestor::cac:ProcurementProjectLot/cbc:ID.
Get the lot for a LotResult¶
Get the Lot in tender.lots whose id is equal to the value of ancestor::efac:LotResult/efac:TenderLot/cbc:ID. If none exists yet, add a Lot to tender.lots and set its id to the value of ancestor::efac:LotResult/efac:TenderLot/cbc:ID.
Get the lots for a SettledContract¶
For each ancestor::efac:NoticeResult/efac:LotResult with a /efac:SettledContract/cbc:ID equal to the value of ancestor::efac:SettledContract/cbc:ID, get the Lot in tender/lots whose .id is equal to the value of the LotResult's /efac:TenderLot/cbc:ID.
Get the lot for a LotTender¶
Get the Lot object in tender.lots whose .id matches ancestor::efac:LotTender/efac:TenderLot:cbc:ID. If none exists yet, add a Lot to tender.lots and set its id to the value of ancestor::efac:LotTender/efac:TenderLot:cbc:ID.
Bids, awards and contracts¶
Get the bid for a LotTender¶
Get the Bid in bids.details whose id is equal to the value of ancestor::efac:LotTender/cbc:ID. If none exists yet:
Add a Bid object to the bids.details array
Set its .id to the value of ancestor::efac:LotTender/cbc:ID
Add the value of ancestor::efac:LotTender/efac:TenderLot/cbc:ID to its .relatedLots
Get the award for a LotResult¶
Get the Award in awards whose id is equal to the value of ancestor::efac:LotResult/cbc:ID. If none exists yet:
Add an Award to awards
Set its .id to the value of ancestor::efac:LotResult/cbc:ID
Add the value of ancestor::efac:LotResult/efac:TenderLot/cbc:ID to its .relatedLots
Get the contract for a SettledContract¶
Get the Contract in contracts whose .id is equal to ancestor::efac:SettledContract/cbc:ID. If none exists yet:
Add a Contract to contracts
Set its .id to the value of ancestor::efac:SettledContract/cbc:ID
Get all LotResults (ancestor::efac:NoticeResult/efac:LotResult) with an /efac:SettledContract/cbc:ID equal to ancestor::efac:SettledContract/cbc:ID
If there is exactly one, add its /cbc:ID to the contract's .awardID
If there is more than one, add each LotResult's /cbc:ID to the contract's .awardIDs