Commit 99e8c8922b22165c8b4f5f8d8ca0b5cee58ff78f
Committed by
GitHub
Merge pull request #193 from ProzorroUKR/dev_prozorro
Dev prozorro
Showing
6 changed files
with
247 additions
and
8 deletions
@@ -78,6 +78,8 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | @@ -78,6 +78,8 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | ||
78 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml | 78 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml |
79 | ${ARTIFACT}= load_data_from ${file_path} | 79 | ${ARTIFACT}= load_data_from ${file_path} |
80 | Log ${ARTIFACT.tender_uaid} | 80 | Log ${ARTIFACT.tender_uaid} |
81 | + Log ${ARTIFACT.tender_id} | ||
82 | + Log ${ARTIFACT.tender_owner_access_token} | ||
81 | [Arguments] ${data_version} | 83 | [Arguments] ${data_version} |
82 | ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} | 84 | ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} |
83 | ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} | 85 | ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} |
@@ -105,7 +107,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | @@ -105,7 +107,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | ||
105 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data} | 107 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data} |
106 | ${adapted_data_mnn}= edit_tender_data_for_mnn ${adapted_data} ${MODE} ${data_version} | 108 | ${adapted_data_mnn}= edit_tender_data_for_mnn ${adapted_data} ${MODE} ${data_version} |
107 | Log ${adapted_data_mnn} | 109 | Log ${adapted_data_mnn} |
108 | - ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data_mnn} | 110 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data_mnn} ${ARTIFACT.tender_id} ${ARTIFACT.tender_owner_access_token} |
109 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data_mnn} | 111 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data_mnn} |
110 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | 112 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} |
111 | 113 | ||
@@ -115,6 +117,8 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | @@ -115,6 +117,8 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | ||
115 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml | 117 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml |
116 | ${ARTIFACT}= load_data_from ${file_path} | 118 | ${ARTIFACT}= load_data_from ${file_path} |
117 | Log ${ARTIFACT.tender_uaid} | 119 | Log ${ARTIFACT.tender_uaid} |
120 | + Log ${ARTIFACT.tender_id} | ||
121 | + Log ${ARTIFACT.tender_owner_access_token} | ||
118 | ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} | 122 | ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} |
119 | ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} | 123 | ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} |
120 | ${NUMBER_OF_MILESTONES}= Convert To Integer ${NUMBER_OF_MILESTONES} | 124 | ${NUMBER_OF_MILESTONES}= Convert To Integer ${NUMBER_OF_MILESTONES} |
@@ -141,7 +145,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | @@ -141,7 +145,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | ||
141 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data} | 145 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data} |
142 | ${adapted_data_cost}= edit_tender_data_for_cost ${adapted_data} ${MODE} ${data_version} | 146 | ${adapted_data_cost}= edit_tender_data_for_cost ${adapted_data} ${MODE} ${data_version} |
143 | Log ${adapted_data_cost} | 147 | Log ${adapted_data_cost} |
144 | - ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data_cost} | 148 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data_cost} ${ARTIFACT.tender_id} ${ARTIFACT.tender_owner_access_token} |
145 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data_cost} | 149 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data_cost} |
146 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | 150 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} |
147 | 151 | ||
@@ -151,6 +155,8 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | @@ -151,6 +155,8 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | ||
151 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml | 155 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml |
152 | ${ARTIFACT}= load_data_from ${file_path} | 156 | ${ARTIFACT}= load_data_from ${file_path} |
153 | Log ${ARTIFACT.tender_uaid} | 157 | Log ${ARTIFACT.tender_uaid} |
158 | + Log ${ARTIFACT.tender_id} | ||
159 | + Log ${ARTIFACT.tender_owner_access_token} | ||
154 | ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} | 160 | ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} |
155 | ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} | 161 | ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} |
156 | ${NUMBER_OF_MILESTONES}= Convert To Integer ${NUMBER_OF_MILESTONES} | 162 | ${NUMBER_OF_MILESTONES}= Convert To Integer ${NUMBER_OF_MILESTONES} |
@@ -177,7 +183,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | @@ -177,7 +183,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | ||
177 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data} | 183 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data} |
178 | ${adapted_data_gmdn}= edit_tender_data_for_gmdn ${adapted_data} ${MODE} ${data_version} | 184 | ${adapted_data_gmdn}= edit_tender_data_for_gmdn ${adapted_data} ${MODE} ${data_version} |
179 | Log ${adapted_data_gmdn} | 185 | Log ${adapted_data_gmdn} |
180 | - ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data_gmdn} | 186 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data_gmdn} ${ARTIFACT.tender_id} ${ARTIFACT.tender_owner_access_token} |
181 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data_gmdn} | 187 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data_gmdn} |
182 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | 188 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} |
183 | 189 | ||
@@ -187,6 +193,8 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | @@ -187,6 +193,8 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | ||
187 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml | 193 | ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml |
188 | ${ARTIFACT}= load_data_from ${file_path} | 194 | ${ARTIFACT}= load_data_from ${file_path} |
189 | Log ${ARTIFACT.tender_uaid} | 195 | Log ${ARTIFACT.tender_uaid} |
196 | + Log ${ARTIFACT.tender_id} | ||
197 | + Log ${ARTIFACT.tender_owner_access_token} | ||
190 | ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} | 198 | ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} |
191 | ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} | 199 | ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} |
192 | ${NUMBER_OF_MILESTONES}= Convert To Integer ${NUMBER_OF_MILESTONES} | 200 | ${NUMBER_OF_MILESTONES}= Convert To Integer ${NUMBER_OF_MILESTONES} |
@@ -213,7 +221,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | @@ -213,7 +221,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status | ||
213 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data} | 221 | ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data} |
214 | ${adapted_data_plan_tender}= edit_tender_data_for_plan_tender ${adapted_data} ${MODE} ${data_version} | 222 | ${adapted_data_plan_tender}= edit_tender_data_for_plan_tender ${adapted_data} ${MODE} ${data_version} |
215 | Log ${adapted_data_plan_tender} | 223 | Log ${adapted_data_plan_tender} |
216 | - ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data_plan_tender} | 224 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data_plan_tender} ${ARTIFACT.tender_id} ${ARTIFACT.tender_owner_access_token} |
217 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data_plan_tender} | 225 | Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data_plan_tender} |
218 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | 226 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} |
219 | 227 |
@@ -315,6 +315,7 @@ def test_tender_data_planning(params): | @@ -315,6 +315,7 @@ def test_tender_data_planning(params): | ||
315 | "startDate": get_now().replace(hour=0, minute=0, second=0, microsecond=0).isoformat() | 315 | "startDate": get_now().replace(hour=0, minute=0, second=0, microsecond=0).isoformat() |
316 | } | 316 | } |
317 | }, | 317 | }, |
318 | + "mode": "test", | ||
318 | "items": [], | 319 | "items": [], |
319 | "buyers": [] | 320 | "buyers": [] |
320 | } | 321 | } |
@@ -1268,14 +1268,14 @@ Require Failure | @@ -1268,14 +1268,14 @@ Require Failure | ||
1268 | 1268 | ||
1269 | Розрахувати ціну для ${contract_number} контракту | 1269 | Розрахувати ціну для ${contract_number} контракту |
1270 | ${username}= Отримати користувача з доступом до поля за пріорітетом agreements ${tender_owner} ${viewer} | 1270 | ${username}= Отримати користувача з доступом до поля за пріорітетом agreements ${tender_owner} ${viewer} |
1271 | - ${contract_data}= Create Dictionary data=${USERS.users['${tender_owner}'].tender_data.data.agreements[0].contracts[${contract_number}]} | 1271 | + ${contract_data}= Create Dictionary data=${USERS.users['${username}'].tender_data.data.agreements[0].contracts[${contract_number}]} |
1272 | ${quantity}= Set Variable ${0} | 1272 | ${quantity}= Set Variable ${0} |
1273 | :FOR ${index} IN RANGE ${NUMBER_OF_ITEMS} | 1273 | :FOR ${index} IN RANGE ${NUMBER_OF_ITEMS} |
1274 | - \ ${quantity}= Evaluate ${quantity}+${USERS.users['${tender_owner}'].tender_data.data['items'][${index}]['quantity']} | ||
1275 | - ${value}= Evaluate ${USERS.users['${tender_owner}'].tender_data.data.awards[${contract_number}+1].value.amount}/${quantity} | 1274 | + \ ${quantity}= Evaluate ${quantity}+${USERS.users['${username}'].tender_data.data['items'][${index}]['quantity']} |
1275 | + ${value}= Evaluate ${USERS.users['${username}'].tender_data.data.awards[${contract_number}+1].value.amount}/${quantity} | ||
1276 | ${value}= Convert To Integer ${value} | 1276 | ${value}= Convert To Integer ${value} |
1277 | :FOR ${index} IN RANGE ${NUMBER_OF_ITEMS} | 1277 | :FOR ${index} IN RANGE ${NUMBER_OF_ITEMS} |
1278 | \ Set To Dictionary ${contract_data.data.unitPrices[${index}].value} amount=${value} | 1278 | \ Set To Dictionary ${contract_data.data.unitPrices[${index}].value} amount=${value} |
1279 | ${contract_data}= munch_dict arg=${contract_data} | 1279 | ${contract_data}= munch_dict arg=${contract_data} |
1280 | Log ${contract_data} | 1280 | Log ${contract_data} |
1281 | - [Return] ${contract_data} | 1281 | + [Return] ${contract_data} |
1 | +-v MODE:open_competitive_dialogue | ||
2 | + | ||
3 | +-v DIALOGUE_TYPE:UA | ||
4 | + | ||
5 | +-v NUMBER_OF_ITEMS:1 | ||
6 | +-v NUMBER_OF_LOTS:1 | ||
7 | + | ||
8 | +-v TENDER_MEAT:False | ||
9 | +-v ITEM_MEAT:False | ||
10 | +-v LOT_MEAT:False | ||
11 | + | ||
12 | + | ||
13 | +-i create_tender | ||
14 | +-i find_tender | ||
15 | +-i tender_view | ||
16 | +-i tender_view_milestone | ||
17 | +-i tender_view_value | ||
18 | +-i tender_view_minimalStep | ||
19 | +-i tender_view_deliveryDate | ||
20 | +-i tender_view_quantity | ||
21 | +-i tender_view_unit_name | ||
22 | +-i tender_view_unit_code | ||
23 | +-i tender_view_coordinates | ||
24 | +-i lot_view | ||
25 | +-i lot_view_value | ||
26 | +-i lot_view_minimalStep | ||
27 | + | ||
28 | +-i make_bid_by_provider | ||
29 | +-i make_bid_by_provider1 | ||
30 | +-i make_bid_by_provider2 | ||
31 | + | ||
32 | +-i open_tender_view | ||
33 | + | ||
34 | +#-i pre-qualifications_check_by_edrpou | ||
35 | + | ||
36 | +-i pre-qualification_approve_first_bid | ||
37 | +-i pre-qualification_approve_second_bid | ||
38 | +-i pre-qualification_approve_third_bid | ||
39 | + | ||
40 | +-i pre-qualification_approve_qualifications | ||
41 | + | ||
42 | +-i stage2_pending_status_view | ||
43 | + | ||
44 | +-i wait_bridge_for_work | ||
45 | + | ||
46 | +-i get_second_stage | ||
47 | + | ||
48 | +-i compare_stages | ||
49 | + | ||
50 | +-i save_tender_second_stage | ||
51 | + | ||
52 | +-i activate_second_stage | ||
53 | + | ||
54 | +-i make_bid_by_provider_second_stage | ||
55 | +-i make_bid_by_provider1_second_stage | ||
56 | + | ||
57 | +#-i auction | ||
58 | + | ||
59 | +-i qualification_add_doc_to_first_award | ||
60 | +-i qualification_approve_first_award | ||
61 | +-i qualification_cancel_first_award_qualification | ||
62 | +-i qualification_add_doc_to_second_award | ||
63 | +-i qualification_approve_second_award | ||
64 | + | ||
65 | +-i contract_stand_still | ||
66 | +-i contract_view | ||
67 | +-i modify_contract | ||
68 | +-i add_doc_to_contract | ||
69 | +-i contract_doc_documentOf | ||
70 | +-i contract_sign | ||
71 | + | ||
72 | +-i find_contract | ||
73 | +-i access_contract | ||
74 | +-i submit_change | ||
75 | +-i view_change | ||
76 | +-i upload_change_document | ||
77 | +-i modify_change | ||
78 | +-i apply_change | ||
79 | +-i add_contract_doc | ||
80 | +-i termination_reasons | ||
81 | +-i amount_paid | ||
82 | +-i change_amount_paid | ||
83 | +-i contract_termination |
1 | +-v MODE:open_competitive_dialogue | ||
2 | + | ||
3 | +-v NUMBER_OF_ITEMS:1 | ||
4 | +-v NUMBER_OF_LOTS:1 | ||
5 | + | ||
6 | +-v TENDER_MEAT:False | ||
7 | +-v ITEM_MEAT:False | ||
8 | +-v LOT_MEAT:False | ||
9 | + | ||
10 | +-i create_tender | ||
11 | +-i find_tender | ||
12 | +-i tender_view | ||
13 | +-i tender_view_milestone | ||
14 | +-i tender_view_value | ||
15 | +-i tender_view_minimalStep | ||
16 | +-i tender_view_deliveryDate | ||
17 | +-i tender_view_quantity | ||
18 | +-i tender_view_unit_name | ||
19 | +-i lot_view | ||
20 | +-i lot_view_value | ||
21 | +-i lot_view_minimalStep | ||
22 | + | ||
23 | +-i make_bid_by_provider | ||
24 | +-i make_bid_by_provider1 | ||
25 | +-i make_bid_by_provider2 | ||
26 | + | ||
27 | +-i open_tender_view | ||
28 | + | ||
29 | +#-i pre-qualifications_check_by_edrpou | ||
30 | + | ||
31 | +-i pre-qualification_approve_first_bid | ||
32 | +-i pre-qualification_approve_second_bid | ||
33 | +-i pre-qualification_approve_third_bid | ||
34 | + | ||
35 | +-i pre-qualification_approve_qualifications | ||
36 | + | ||
37 | +-i stage2_pending_status_view | ||
38 | + | ||
39 | +-i wait_bridge_for_work | ||
40 | + | ||
41 | +-i get_second_stage | ||
42 | + | ||
43 | +-i compare_stages | ||
44 | + | ||
45 | +-i save_tender_second_stage | ||
46 | + | ||
47 | +-i activate_second_stage | ||
48 | + | ||
49 | +-i make_bid_by_provider_second_stage | ||
50 | +-i make_bid_by_provider1_second_stage | ||
51 | + | ||
52 | +#-i qualifications_check_by_edrpou | ||
53 | + | ||
54 | +-i pre-qualification_approve_first_bid_second_stage | ||
55 | +-i pre-qualification_approve_second_bid_second_stage | ||
56 | + | ||
57 | +-i pre-qualification_approve_qualifications_second_stage | ||
58 | + | ||
59 | +#-i auction | ||
60 | + | ||
61 | +-i qualification_add_doc_to_first_award | ||
62 | +-i qualification_approve_first_award | ||
63 | +-i qualification_cancel_first_award_qualification | ||
64 | +-i qualification_add_doc_to_second_award | ||
65 | +-i qualification_approve_second_award | ||
66 | + | ||
67 | +-i contract_stand_still | ||
68 | +-i contract_view | ||
69 | +-i modify_contract | ||
70 | +-i add_doc_to_contract | ||
71 | +-i contract_doc_documentOf | ||
72 | +-i contract_sign | ||
73 | + | ||
74 | +-i find_contract | ||
75 | +-i access_contract | ||
76 | +-i submit_change | ||
77 | +-i view_change | ||
78 | +-i upload_change_document | ||
79 | +-i modify_change | ||
80 | +-i apply_change | ||
81 | +-i add_contract_doc | ||
82 | +-i termination_reasons | ||
83 | +-i amount_paid | ||
84 | +-i change_amount_paid | ||
85 | +-i contract_termination |
1 | +-v MODE:framework_selection | ||
2 | + | ||
3 | +-v NUMBER_OF_ITEMS:1 | ||
4 | +-v NUMBER_OF_LOTS:1 | ||
5 | + | ||
6 | +-v TENDER_MEAT:False | ||
7 | +-v ITEM_MEAT:False | ||
8 | +-v LOT_MEAT:False | ||
9 | + | ||
10 | +-i create_tender | ||
11 | +-i find_tender | ||
12 | +-i tender_view | ||
13 | +-i tender_view_value | ||
14 | +-i tender_view_minimalStep | ||
15 | +-i tender_view_deliveryDate | ||
16 | +-i tender_view_quantity | ||
17 | +-i tender_view_unit_name | ||
18 | +-i lot_view | ||
19 | +-i lot_view_value | ||
20 | +-i lot_view_minimalStep | ||
21 | +-i modify_item | ||
22 | +-i modify_lot | ||
23 | + | ||
24 | +-i add_tender_doc | ||
25 | + | ||
26 | +-i extend_tendering_period | ||
27 | + | ||
28 | +-i make_bid_by_provider | ||
29 | + -i modify_bid_by_provider | ||
30 | +-i make_bid_by_provider1 | ||
31 | + -i modify_bid_by_provider1 | ||
32 | + | ||
33 | +-i auction_url | ||
34 | +-i auction | ||
35 | + | ||
36 | +-i qualification_add_doc_to_first_award | ||
37 | +-i qualification_approve_first_award | ||
38 | +-i qualification_cancel_first_award_qualification | ||
39 | +-i qualification_add_doc_to_second_award | ||
40 | +-i qualification_approve_second_award | ||
41 | + | ||
42 | +-i contract_view | ||
43 | +-i modify_contract_amount_net | ||
44 | +-i modify_contract_value | ||
45 | +-i modify_contract | ||
46 | +-i add_doc_to_contract | ||
47 | +-i contract_sign | ||
48 | + | ||
49 | +-i find_contract | ||
50 | +-i access_contract | ||
51 | +-i submit_change | ||
52 | +-i view_change | ||
53 | +-i upload_change_document | ||
54 | +-i modify_change | ||
55 | +-i change_contract_amountNet | ||
56 | +-i change_contract_amount | ||
57 | +-i apply_change | ||
58 | +-i add_contract_doc | ||
59 | +-i termination_reasons | ||
60 | +-i amount_paid | ||
61 | +-i change_amount_paid | ||
62 | +-i contract_termination |
Please
register
or
login
to post a comment