Commit e5cc4264a755aa18aa1f5d0dece8632397501256
Committed by
GitHub
Merge pull request #114 from ProzorroUKR/VAT
CS-132 Vat
Showing
24 changed files
with
316 additions
and
39 deletions
... | ... | @@ -20,6 +20,7 @@ Resource resource.robot |
20 | 20 | ... item_meat=${${ITEM_MEAT}} |
21 | 21 | ... api_host_url=${API_HOST_URL} |
22 | 22 | ... moz_integration=${${MOZ_INTEGRATION}} |
23 | + ... vat_included=${${VAT_INCLUDED}} | |
23 | 24 | ${DIALOGUE_TYPE}= Get Variable Value ${DIALOGUE_TYPE} |
24 | 25 | ${FUNDING_KIND}= Get Variable Value ${FUNDING_KIND} |
25 | 26 | Run keyword if '${DIALOGUE_TYPE}' != '${None}' Set to dictionary ${tender_parameters} dialogue_type=${DIALOGUE_TYPE} |
... | ... | @@ -834,7 +835,8 @@ Resource resource.robot |
834 | 835 | |
835 | 836 | Вказати дійсно оплачену суму |
836 | 837 | ${amount}= Get variable value ${USERS.users['${tender_owner}'].contract_data.data.value.amount} |
837 | - ${amountPaid}= Create Dictionary amount=${amount} valueAddedTaxIncluded=${True} currency=UAH | |
838 | + ${valueAddedTaxIncluded}= Get variable value ${USERS.users['${tender_owner}'].contract_data.data.value.valueAddedTaxIncluded} | |
839 | + ${amountPaid}= Create Dictionary amount=${amount} valueAddedTaxIncluded=${valueAddedTaxIncluded} currency=UAH | |
838 | 840 | ${data}= Create Dictionary amountPaid=${amountPaid} |
839 | 841 | ${data}= Create Dictionary data=${data} |
840 | 842 | Set to dictionary ${USERS.users['${tender_owner}']} terminating_data=${data} | ... | ... |
... | ... | @@ -6,8 +6,10 @@ Suite Teardown Test Suite Teardown |
6 | 6 | *** Variables *** |
7 | 7 | @{USED_ROLES} tender_owner viewer |
8 | 8 | ${MOZ_INTEGRATION} ${False} |
9 | +${VAT_INCLUDED} ${True} | |
9 | 10 | ${NUMBER_OF_MILESTONES} ${0} |
10 | 11 | |
12 | + | |
11 | 13 | *** Test Cases *** |
12 | 14 | Можливість оголосити тендер |
13 | 15 | [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | ... | ... |
... | ... | @@ -161,15 +161,26 @@ Suite Teardown Test Suite Teardown |
161 | 161 | Run As ${tender_owner} Редагувати поле договору ${CONTRACT_UAID} title ${title} |
162 | 162 | |
163 | 163 | |
164 | +Можливість редагувати вартість договору без ПДВ | |
165 | + [Tags] ${USERS.users['${tender_owner}']}: Редагування договору | |
166 | + ... tender_owner | |
167 | + ... ${USERS.users['${tender_owner}']} | |
168 | + ... modify_contract | |
169 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
170 | + ${amount_net}= create_fake_amount_net ${USERS.users['${tender_owner}'].contract_data.data.value.amount} | |
171 | + Set to dictionary ${USERS.users['${tender_owner}']} new_amount_net=${amount_net} | |
172 | + Run As ${tender_owner} Редагувати поле договору ${CONTRACT_UAID} value.amountNet ${amount_net} | |
173 | + | |
174 | + | |
164 | 175 | Можливість редагувати вартість договору |
165 | - [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування договору | |
176 | + [Tags] ${USERS.users['${tender_owner}']}: Редагування договору | |
166 | 177 | ... tender_owner |
167 | - ... ${USERS.users['${tender_owner}'].broker} | |
178 | + ... ${USERS.users['${tender_owner}']} | |
168 | 179 | ... modify_contract |
169 | 180 | [Teardown] Оновити LAST_MODIFICATION_DATE |
170 | - ${value.amount}= create_fake_value_amount | |
171 | - Set to dictionary ${USERS.users['${tender_owner}']} new_amount=${value.amount} | |
172 | - Run As ${tender_owner} Редагувати поле договору ${CONTRACT_UAID} value.amount ${value.amount} | |
181 | + ${amount}= create_fake_amount ${USERS.users['${tender_owner}'].contract_data.data.value.amount} | |
182 | + Set to dictionary ${USERS.users['${tender_owner}']} new_amount=${amount} | |
183 | + Run As ${tender_owner} Редагувати поле договору ${CONTRACT_UAID} value.amount ${amount} | |
173 | 184 | |
174 | 185 | |
175 | 186 | Можливість редагувати дату завершення дії договору |
... | ... | @@ -245,10 +256,22 @@ Suite Teardown Test Suite Teardown |
245 | 256 | ... title |
246 | 257 | |
247 | 258 | |
259 | +Відображення відредагованої вартості договору без ПДВ | |
260 | + [Tags] ${USERS.users['${tender_owner}']}: Редагування договору | |
261 | + ... viewer | |
262 | + ... ${USERS.users['${tender_owner}']} | |
263 | + ... modify_contract | |
264 | + Звірити поле договору із значенням | |
265 | + ... ${viewer} | |
266 | + ... ${CONTRACT_UAID} | |
267 | + ... ${USERS.users['${tender_owner}'].new_amount_net} | |
268 | + ... value.amountNet | |
269 | + | |
270 | + | |
248 | 271 | Відображення відредагованої вартості договору |
249 | - [Tags] ${USERS.users['${viewer}'].broker}: Редагування договору | |
272 | + [Tags] ${USERS.users['${tender_owner}']}: Редагування договору | |
250 | 273 | ... viewer |
251 | - ... ${USERS.users['${viewer}'].broker} | |
274 | + ... ${USERS.users['${tender_owner}']} | |
252 | 275 | ... modify_contract |
253 | 276 | Звірити поле договору із значенням |
254 | 277 | ... ${viewer} | ... | ... |
... | ... | @@ -44,43 +44,175 @@ Suite Teardown Test Suite Teardown |
44 | 44 | Дочекатись дати ${standstillEnd} |
45 | 45 | |
46 | 46 | |
47 | -Відображення вартості угоди | |
47 | +Відображення вартості угоди без урахування ПДВ | |
48 | 48 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди |
49 | 49 | ... viewer |
50 | - ... ${USERS.users['${viewer}'].broker} | |
50 | + ... ${viewer_data.broker} | |
51 | 51 | ... contract_view |
52 | 52 | ... non-critical |
53 | 53 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} |
54 | 54 | ${award_index}= Отримати останній індекс awards ${tender_owner} ${viewer} |
55 | - Отримати дані із поля awards[${award_index}].value.amount тендера для користувача ${viewer} | |
55 | + ${award}= Get From List ${USERS.users['${viewer}'].tender_data.data.awards} ${award_index} | |
56 | + ${award_amount}= Get From Dictionary ${award.value} amount | |
57 | + ${contract_index}= Отримати останній індекс contracts ${tender_owner} ${viewer} | |
58 | + ${amount_net_field}= Set Variable contracts[${contract_index}].value.amountNet | |
59 | + Звірити відображення поля ${amount_net_field} тендера із ${award_amount} для користувача ${viewer} | |
56 | 60 | |
57 | 61 | |
58 | -Можливість редагувати вартість угоди | |
62 | +Можливість редагувати вартість угоди без урахування ПДВ | |
59 | 63 | [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування угоди |
60 | 64 | ... tender_owner |
61 | 65 | ... ${USERS.users['${tender_owner}'].broker} |
66 | + ... modify_contract | |
67 | + ... critical | |
68 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | |
69 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
70 | + ${award}= Отримати останній элемент awards ${tender_owner} ${viewer} | |
71 | + ${amount_net}= create_fake_amount_net ${award.value.amount} ${award.value.valueAddedTaxIncluded} | |
72 | + ${contract_index}= Отримати останній індекс contracts ${tender_owner} ${viewer} | |
73 | + Set to dictionary ${USERS.users['${tender_owner}']} new_amount_net=${amount_net} | |
74 | + Run As ${tender_owner} Редагувати угоду | |
75 | + ... ${TENDER['TENDER_UAID']} | |
76 | + ... ${contract_index} | |
77 | + ... value.amountNet | |
78 | + ... ${amount_net} | |
79 | + | |
80 | + | |
81 | +Відображення відредагованої вартості угоди без урахування ПДВ | |
82 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди | |
83 | + ... viewer | |
84 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
85 | + ... contract_view | |
86 | + ... non-critical | |
87 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | |
88 | + ${amount_net}= Get Variable Value ${USERS.users['${tender_owner}'].new_amount_net} | |
89 | + ${contract_index}= Отримати останній індекс contracts ${tender_owner} ${viewer} | |
90 | + ${amount_net_field}= Set Variable contracts[${contract_index}].value.amountNet | |
91 | + Звірити відображення поля ${amount_net_field} тендера із ${amount_net} для користувача ${viewer} | |
92 | + | |
93 | + | |
94 | +Відображення вартості угоди | |
95 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди | |
96 | + ... viewer | |
97 | + ... ${USERS.users['${viewer}'].broker} | |
98 | + ... contract_view | |
99 | + ... non-critical | |
100 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | |
101 | + ${contract_index}= Отримати останній індекс contracts ${tender_owner} ${viewer} | |
102 | + ${amount_field}= Set Variable contracts[${contract_index}].value.amount | |
103 | + Отримати дані із поля ${amount_field} тендера для користувача ${viewer} | |
104 | + | |
105 | + | |
106 | +Можливість редагувати вартість угоди | |
107 | + ${viewer_data}= Get From Dictionary ${USERS.users} ${viewer} | |
108 | + ${tender_owner_data}= Get From Dictionary ${USERS.users} ${tender_owner} | |
109 | + [Tags] ${tender_owner_data.broker}: Редагування угоди | |
110 | + ... tender_owner | |
111 | + ... ${tender_owner_data.broker} | |
62 | 112 | ... modify_contract_value |
63 | 113 | ... critical |
64 | 114 | [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} |
65 | 115 | [Teardown] Оновити LAST_MODIFICATION_DATE |
66 | - ${award_index}= Отримати останній індекс awards ${tender_owner} ${viewer} | |
116 | + ${award}= Отримати останній элемент awards ${tender_owner} ${viewer} | |
117 | + ${amount}= create_fake_amount ${award.value.amount} ${award.value.valueAddedTaxIncluded} | |
67 | 118 | ${contract_index}= Отримати останній індекс contracts ${tender_owner} ${viewer} |
68 | - ${award_amount}= Get From Dictionary ${USERS.users['${viewer}'].tender_data.data.awards[${award_index}].value} amount | |
69 | - ${amount}= create_fake_amount ${award_amount} | |
70 | 119 | Set to dictionary ${USERS.users['${tender_owner}']} new_amount=${amount} |
71 | - Run As ${tender_owner} Редагувати угоду ${TENDER['TENDER_UAID']} ${contract_index} value.amount ${amount} | |
120 | + Run As ${tender_owner} Редагувати угоду | |
121 | + ... ${TENDER['TENDER_UAID']} | |
122 | + ... ${contract_index} | |
123 | + ... value.amount | |
124 | + ... ${amount} | |
72 | 125 | |
73 | 126 | |
74 | 127 | Відображення відредагованої вартості угоди |
75 | 128 | [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних угоди |
76 | 129 | ... viewer |
77 | - ... ${USERS.users['${viewer}'].broker} | |
130 | + ... ${USERS.users['${viewer}'].broker} ${USERS.users['${tender_owner}'].broker} | |
78 | 131 | ... modify_contract_value |
79 | 132 | ... non-critical |
80 | 133 | [Setup] Дочекатись синхронізації з майданчиком ${viewer} |
134 | + ${amount}= Get Variable Value ${USERS.users['${tender_owner}'].new_amount} | |
135 | + ${contract_index}= Отримати останній індекс contracts ${tender_owner} ${viewer} | |
136 | + ${amount_field}= Set Variable contracts[${contract_index}].value.amount | |
137 | + Звірити відображення поля ${amount_field} тендера із ${amount} для користувача ${viewer} | |
138 | + | |
139 | + | |
140 | +Неможливість вказати ціну договору без ПДВ більше ніж результат проведення аукціону (закупівля без ПДВ) | |
141 | +# contract:value:amountNet should be <= award.value.amount if valueAddedTaxIncluded=false | |
142 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування угоди | |
143 | + ... tender_owner | |
144 | + ... ${USERS.users['${tender_owner}'].broker} | |
145 | + ... modify_contract_amountNet_vat_false | |
146 | + ... critical | |
147 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | |
148 | + ${award}= Отримати останній элемент awards ${tender_owner} ${viewer} | |
149 | + ${contract_index}= Отримати останній індекс contracts ${tender_owner} ${viewer} | |
150 | + ${amount_net}= Evaluate ${award.value.amount} * 2 | |
151 | + ${value}= Require Failure ${tender_owner} Редагувати угоду | |
152 | + ... ${TENDER['TENDER_UAID']} | |
153 | + ... ${contract_index} | |
154 | + ... value.amountNet | |
155 | + ... ${amount_net} | |
156 | + Should Contain ${value} Value amountNet should be less or equal to awarded amount | |
157 | + | |
158 | + | |
159 | +Неможливість вказати ціну договору з ПДВ більше ніж результат проведення аукціону (закупівля з ПДВ) | |
160 | +# contract:value:amount should be <= award.value.amount if valueAddedTaxIncluded=ture | |
161 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування угоди | |
162 | + ... tender_owner | |
163 | + ... ${USERS.users['${tender_owner}'].broker} | |
164 | + ... modify_contract_amount_vat_true | |
165 | + ... critical | |
166 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | |
167 | + ${award}= Отримати останній элемент awards ${tender_owner} ${viewer} | |
168 | + ${contract_index}= Отримати останній індекс contracts ${tender_owner} ${viewer} | |
169 | + ${amount}= Evaluate ${award.value.amount} * 2 | |
170 | + ${value}= Require Failure ${tender_owner} Редагувати угоду | |
171 | + ... ${TENDER['TENDER_UAID']} | |
172 | + ... ${contract_index} | |
173 | + ... value.amount | |
174 | + ... ${amount} | |
175 | + Run Keyword IF '${MODE}' == 'open_esco' | |
176 | + ... Should Contain ${value} Can't update amount for contract value | |
177 | + ... ELSE | |
178 | + ... Should Contain ${value} Value amount should be less or equal to awarded amount | |
179 | + | |
180 | + | |
181 | +Неможливість зменшити ціну договору без ПДВ на суму більшу за 20% від ціни договору з ПДВ (закупівля з ПДВ) | |
182 | +# contract:value:amountNet can be <= contract:value:amount but no more than on contract:value:amount/1.2 value if valueAddedTaxIncluded=ture | |
183 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування угоди | |
184 | + ... tender_owner | |
185 | + ... ${USERS.users['${tender_owner}'].broker} | |
186 | + ... modify_contract_amountNet_vat_true | |
187 | + ... critical | |
188 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | |
189 | + ${award}= Отримати останній элемент awards ${tender_owner} ${viewer} | |
190 | + ${contract_index}= Отримати останній індекс contracts ${tender_owner} ${viewer} | |
191 | + ${value}= Require Failure ${tender_owner} Редагувати угоду | |
192 | + ... ${TENDER['TENDER_UAID']} | |
193 | + ... ${contract_index} | |
194 | + ... value.amountNet | |
195 | + ... 0 | |
196 | + Should Contain ${value} for 20.0% | |
197 | + | |
198 | + | |
199 | +Неможливість збільшити ціну договору з ПДВ на суму більшу за 20% від ціни договору без ПДВ (закупівля без ПДВ) | |
200 | +# contract:value:amount can be >= contract:value:amountNet but no more than on 20% of contract:value:amountNet value if valueAddedTaxIncluded=false | |
201 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Редагування угоди | |
202 | + ... tender_owner | |
203 | + ... ${USERS.users['${tender_owner}'].broker} | |
204 | + ... modify_contract_amount_vat_false | |
205 | + ... critical | |
206 | + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} | |
207 | + ${award}= Отримати останній элемент awards ${tender_owner} ${viewer} | |
81 | 208 | ${contract_index}= Отримати останній індекс contracts ${tender_owner} ${viewer} |
82 | - Run Keyword And Ignore Error Remove From Dictionary ${USERS.users['${viewer}'].tender_data.data.contracts[${contract_index}].value} amount | |
83 | - Звірити відображення поля contracts[${contract_index}].value.amount тендера із ${USERS.users['${tender_owner}'].new_amount} для користувача ${viewer} | |
209 | + ${amount}= Evaluate ${award.value.amount} * 2 | |
210 | + ${value}= Require Failure ${tender_owner} Редагувати угоду | |
211 | + ... ${TENDER['TENDER_UAID']} | |
212 | + ... ${contract_index} | |
213 | + ... value.amount | |
214 | + ... ${amount} | |
215 | + Should Contain ${value} Value amount can't be greater than amountNet | |
84 | 216 | |
85 | 217 | |
86 | 218 | Можливість встановити дату підписання угоди | ... | ... |
... | ... | @@ -44,8 +44,25 @@ def get_fake_funder_scheme(): |
44 | 44 | return fake.funder_scheme() |
45 | 45 | |
46 | 46 | |
47 | -def create_fake_amount(award_amount): | |
48 | - return round(random.uniform(1, award_amount), 2) | |
47 | +def create_fake_amount(award_amount, value_added_tax_included=False): | |
48 | + min_amount_net = award_amount - award_amount * 0.2 | |
49 | + range_amount_net = award_amount - min_amount_net | |
50 | + half_min_amount_net = min_amount_net + range_amount_net / 2 | |
51 | + half_max_amount_net = half_min_amount_net + range_amount_net | |
52 | + if value_added_tax_included: | |
53 | + return round(random.uniform(half_min_amount_net, award_amount), 2) | |
54 | + else: | |
55 | + return round(random.uniform(award_amount, half_max_amount_net), 2) | |
56 | + | |
57 | + | |
58 | +def create_fake_amount_net(award_amount, value_added_tax_included=False): | |
59 | + min_amount_net = award_amount / 1.2 | |
60 | + range_amount_net = award_amount - min_amount_net | |
61 | + half_min_amount_net = min_amount_net + range_amount_net / 2 | |
62 | + if value_added_tax_included: | |
63 | + return round(random.uniform(min_amount_net, half_min_amount_net), 2) | |
64 | + else: | |
65 | + return round(random.uniform(half_min_amount_net, award_amount), 2) | |
49 | 66 | |
50 | 67 | |
51 | 68 | def create_fake_number(min_number, max_number): |
... | ... | @@ -135,6 +152,7 @@ def test_tender_data(params, |
135 | 152 | if submissionMethodDetails else "quick" |
136 | 153 | now = get_now() |
137 | 154 | value_amount = round(random.uniform(3000, 99999999.99), 2) # max value equals to budget of Ukraine in hryvnias |
155 | + vat_included = params.get('vat_included', True) | |
138 | 156 | data = { |
139 | 157 | "mode": "test", |
140 | 158 | "submissionMethodDetails": submissionMethodDetails, |
... | ... | @@ -149,11 +167,12 @@ def test_tender_data(params, |
149 | 167 | "value": { |
150 | 168 | "amount": value_amount, |
151 | 169 | "currency": u"UAH", |
152 | - "valueAddedTaxIncluded": True | |
170 | + "valueAddedTaxIncluded": vat_included | |
153 | 171 | }, |
154 | 172 | "minimalStep": { |
155 | 173 | "amount": round(random.uniform(0.005, 0.03) * value_amount, 2), |
156 | - "currency": u"UAH" | |
174 | + "currency": u"UAH", | |
175 | + "valueAddedTaxIncluded": vat_included | |
157 | 176 | }, |
158 | 177 | "items": [], |
159 | 178 | "features": [] |
... | ... | @@ -183,7 +202,7 @@ def test_tender_data(params, |
183 | 202 | data['lots'] = [] |
184 | 203 | for lot_number in range(params['number_of_lots']): |
185 | 204 | lot_id = uuid4().hex |
186 | - new_lot = test_lot_data(data['value']['amount']) | |
205 | + new_lot = test_lot_data(data['value']['amount'], vat_included) | |
187 | 206 | data['lots'].append(new_lot) |
188 | 207 | data['lots'][lot_number]['id'] = lot_id |
189 | 208 | for i in range(params['number_of_items']): |
... | ... | @@ -462,12 +481,12 @@ def test_bid_data(): |
462 | 481 | return bid |
463 | 482 | |
464 | 483 | |
465 | -def test_bid_value(max_value_amount): | |
484 | +def test_bid_value(max_value_amount, vat_included): | |
466 | 485 | return munchify({ |
467 | 486 | "value": { |
468 | 487 | "currency": "UAH", |
469 | 488 | "amount": round(random.uniform((0.95 * max_value_amount), max_value_amount), 2), |
470 | - "valueAddedTaxIncluded": True | |
489 | + "valueAddedTaxIncluded": vat_included | |
471 | 490 | } |
472 | 491 | }) |
473 | 492 | |
... | ... | @@ -507,7 +526,7 @@ def test_bid_data_selection(data, index): |
507 | 526 | }) |
508 | 527 | bid.data['status'] = 'draft' |
509 | 528 | bid.data['parameters'] = data['agreements'][0]['contracts'][index]['parameters'] |
510 | - bid.data['lotValues'] = [test_bid_value(data['agreements'][0]['contracts'][index]['value']['amount'])] | |
529 | + bid.data['lotValues'] = [test_bid_value(data['agreements'][0]['contracts'][index]['value']['amount'], data['agreements'][0]['contracts'][index]['value']['valueAddedTaxIncluded'])] | |
511 | 530 | return bid |
512 | 531 | |
513 | 532 | |
... | ... | @@ -564,7 +583,7 @@ def test_invalid_features_data(): |
564 | 583 | ] |
565 | 584 | |
566 | 585 | |
567 | -def test_lot_data(max_value_amount): | |
586 | +def test_lot_data(max_value_amount, vat_included=True): | |
568 | 587 | value_amount = round(random.uniform(1, max_value_amount), 2) |
569 | 588 | return munchify( |
570 | 589 | { |
... | ... | @@ -575,12 +594,12 @@ def test_lot_data(max_value_amount): |
575 | 594 | "value": { |
576 | 595 | "currency": "UAH", |
577 | 596 | "amount": value_amount, |
578 | - "valueAddedTaxIncluded": True | |
597 | + "valueAddedTaxIncluded": vat_included | |
579 | 598 | }, |
580 | 599 | "minimalStep": { |
581 | 600 | "currency": "UAH", |
582 | 601 | "amount": round(random.uniform(0.005, 0.03) * value_amount, 2), |
583 | - "valueAddedTaxIncluded": True | |
602 | + "valueAddedTaxIncluded": vat_included | |
584 | 603 | }, |
585 | 604 | "status": "active" |
586 | 605 | }) | ... | ... |
... | ... | @@ -1189,19 +1189,39 @@ Require Failure |
1189 | 1189 | Run Keyword If '${status}' == 'PASS' Set To Dictionary ${MONITORING} DASU_LAST_MODIFICATION_DATE=${LAST_MODIFICATION_DATE} |
1190 | 1190 | |
1191 | 1191 | |
1192 | -Отримати останній індекс | |
1193 | - [Arguments] ${object} @{username} | |
1194 | - :FOR ${role} IN @{username} | |
1192 | +Отримати користувача з доступом до поля за пріорітетом | |
1193 | + [Arguments] ${field} @{usernames} | |
1194 | + :FOR ${username} IN @{usernames} | |
1195 | + \ ${user_data}= Get From Dictionary ${USERS.users} ${username} | |
1195 | 1196 | \ ${status} ${field_value}= Run Keyword And Ignore Error |
1196 | 1197 | ... get_from_object |
1197 | - ... ${USERS.users['${role}'].tender_data.data} | |
1198 | - ... ${object} | |
1198 | + ... ${user_data.tender_data.data} | |
1199 | + ... ${field} | |
1199 | 1200 | \ Run Keyword If '${status}' == 'PASS' Exit For Loop |
1200 | - ${len_of_object}= Run Keyword If '${status}' == 'PASS' Get Length ${USERS.users['${role}'].tender_data.data.${object}} | |
1201 | - ${index}= Run Keyword If '${status}' == 'PASS' subtraction ${len_of_object} 1 | |
1201 | + Run Keyword If '${status}' == 'FAIL' Fail ${object} not found for usernames @{usernames} | |
1202 | + [Return] ${username} | |
1203 | + | |
1204 | + | |
1205 | +Отримати останній індекс | |
1206 | + [Arguments] ${field} @{usernames} | |
1207 | + ${username}= Отримати користувача з доступом до поля за пріорітетом ${field} @{usernames} | |
1208 | + ${user_data}= Get From Dictionary ${USERS.users} ${username} | |
1209 | + ${object}= Get From Dictionary ${user_data.tender_data.data} ${field} | |
1210 | + ${len}= Get Length ${object} | |
1211 | + ${index}= Evaluate ${len} - 1 | |
1202 | 1212 | [Return] ${index} |
1203 | 1213 | |
1204 | 1214 | |
1215 | +Отримати останній элемент | |
1216 | + [Arguments] ${field} @{usernames} | |
1217 | + ${username}= Отримати користувача з доступом до поля за пріорітетом ${field} @{usernames} | |
1218 | + ${index}= Отримати останній індекс ${field} @{usernames} | |
1219 | + ${user_data}= Get From Dictionary ${USERS.users} ${username} | |
1220 | + ${object}= Get From Dictionary ${user_data.tender_data.data} ${field} | |
1221 | + ${item}= Get From List ${object} ${index} | |
1222 | + [Return] ${item} | |
1223 | + | |
1224 | + | |
1205 | 1225 | Розрахувати ціну для ${contract_number} контракту |
1206 | 1226 | ${contract_data}= Create Dictionary data=${USERS.users['${tender_owner}'].tender_data.data.agreements[0].contracts[${contract_number}]} |
1207 | 1227 | ${quantity}= Set Variable ${0} | ... | ... |
... | ... | @@ -15,6 +15,7 @@ ${TENDER_MEAT} ${False} |
15 | 15 | ${LOT_MEAT} ${False} |
16 | 16 | ${ITEM_MEAT} ${False} |
17 | 17 | ${MOZ_INTEGRATION} ${False} |
18 | +${VAT_INCLUDED} ${True} | |
18 | 19 | |
19 | 20 | *** Test Cases *** |
20 | 21 | ############################################################################################## | ... | ... |
... | ... | @@ -15,6 +15,7 @@ ${TENDER_MEAT} ${False} |
15 | 15 | ${LOT_MEAT} ${False} |
16 | 16 | ${ITEM_MEAT} ${False} |
17 | 17 | ${MOZ_INTEGRATION} ${False} |
18 | +${VAT_INCLUDED} ${True} | |
18 | 19 | |
19 | 20 | *** Test Cases *** |
20 | 21 | ############################################################################################## | ... | ... |
... | ... | @@ -15,6 +15,7 @@ ${TENDER_MEAT} ${False} |
15 | 15 | ${LOT_MEAT} ${False} |
16 | 16 | ${ITEM_MEAT} ${False} |
17 | 17 | ${MOZ_INTEGRATION} ${False} |
18 | +${VAT_INCLUDED} ${True} | |
18 | 19 | |
19 | 20 | *** Test Cases *** |
20 | 21 | ############################################################################################## | ... | ... |
... | ... | @@ -20,6 +20,7 @@ from .initial_data import ( |
20 | 20 | create_fake_doc, |
21 | 21 | create_fake_sentence, |
22 | 22 | create_fake_amount, |
23 | + create_fake_amount_net, | |
23 | 24 | create_fake_number, |
24 | 25 | create_fake_number_float, |
25 | 26 | create_fake_date, |
... | ... | @@ -626,7 +627,7 @@ def generate_test_bid_data(tender_data): |
626 | 627 | if tender_data.get('procurementMethodType', '') == 'esco': |
627 | 628 | value = test_bid_value_esco(tender_data) |
628 | 629 | else: |
629 | - value = test_bid_value(lot['value']['amount']) | |
630 | + value = test_bid_value(lot['value']['amount'], lot['value']['valueAddedTaxIncluded']) | |
630 | 631 | value['relatedLot'] = lot.get('id', '') |
631 | 632 | bid.data.lotValues.append(value) |
632 | 633 | else: |
... | ... | @@ -634,7 +635,7 @@ def generate_test_bid_data(tender_data): |
634 | 635 | value = test_bid_value(tender_data) |
635 | 636 | bid.data.update(value) |
636 | 637 | else: |
637 | - bid.data.update(test_bid_value(tender_data['value']['amount'])) | |
638 | + bid.data.update(test_bid_value(tender_data['value']['amount'], tender_data['value']['valueAddedTaxIncluded'])) | |
638 | 639 | if 'features' in tender_data: |
639 | 640 | bid.data.parameters = [] |
640 | 641 | for feature in tender_data['features']: | ... | ... |
1 | +-v MODE:belowThreshold | |
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 | +-v VAT_INCLUDED: False | |
11 | + | |
12 | + | |
13 | +-i create_tender | |
14 | +-i find_tender | |
15 | +-i tender_view | |
16 | +-i tender_view_unit_code | |
17 | +-i tender_view_coordinates | |
18 | +-i lot_view | |
19 | + | |
20 | +-i make_bid_by_provider | |
21 | +-i make_bid_by_provider1 | |
22 | +-i modify_bid_by_provider1 | |
23 | + | |
24 | +-i auction | |
25 | + | |
26 | +-i qualification_add_doc_to_first_award | |
27 | +-i qualification_approve_first_award | |
28 | +-i qualification_cancel_first_award_qualification | |
29 | +-i qualification_add_doc_to_second_award | |
30 | +-i qualification_approve_second_award | |
31 | + | |
32 | +-i contract_view | |
33 | +-i modify_contract_amountNet_vat_false | |
34 | +-i modify_contract_amount_vat_false | |
35 | +-i modify_contract | |
36 | + -i modify_contract_value | |
37 | +-i add_doc_to_contract | |
38 | + -i contract_doc_documentOf | |
39 | +-i contract_sign | |
40 | +-i contract_stand_still | |
41 | + | |
42 | +-i find_contract | |
43 | +-i access_contract | |
44 | +-i submit_change | |
45 | +-i view_change | |
46 | +-i upload_change_document | |
47 | +-i modify_change | |
48 | +-i apply_change | |
49 | +-i add_contract_doc | |
50 | +-i termination_reasons | |
51 | +-i amount_paid | |
52 | +-i contract_termination | |
\ No newline at end of file | ... | ... |
Please
register
or
login
to post a comment