Commit 4ee0bcbe5e83a8c80a5ac2eb84f4ced4d9e175c2

Authored by alexdiatlov
Committed by GitHub
2 parents d690c617 61666928

Merge branch 'dev_prozorro_2' into amcu

... ... @@ -221,7 +221,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
221 221 ${period_intervals}= compute_intrs ${BROKERS} ${used_brokers}
222 222 ${accelerator}= Get Variable Value ${accelerator}
223 223 ${accelerator}= Set Variable If '${accelerator}' != '${None}' ${accelerator} ${period_intervals.default.accelerator}
224   - ${monitoring_data}= tets_monitoring_data ${USERS.users['${dasu_user}'].tender_data.data.id} ${accelerator}
  224 + ${monitoring_data}= test_monitoring_data ${USERS.users['${dasu_user}'].tender_data.data.id} ${accelerator}
225 225 Log ${monitoring_data}
226 226 ${MNITORING_UAID}= Run As ${dasu_user} Створити об'єкт моніторингу ${monitoring_data}
227 227 ${MONITORING}= Create Dictionary
... ...
... ... @@ -729,12 +729,13 @@ Library openprocurement_client.utils
729 729
730 730
731 731 Скасувати лот
732   - [Arguments] ${username} ${tender_uaid} ${lot_id} ${cancellation_reason} ${document} ${new_description}
  732 + [Arguments] ${username} ${tender_uaid} ${lot_id} ${cancellation_reason} ${cancellation_reasonType} ${document} ${new_description}
733 733 ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
734 734 ${lot_index}= get_object_index_by_id ${tender.data.lots} ${lot_id}
735 735 ${lot_id}= Get Variable Value ${tender.data.lots[${lot_index}].id}
736 736 ${data}= Create dictionary
737 737 ... reason=${cancellation_reason}
  738 + ... reasonType=${cancellation_reasonType}
738 739 ... cancellationOf=lot
739 740 ... relatedLot=${lot_id}
740 741 ${cancellation_data}= Create dictionary data=${data}
... ... @@ -1430,6 +1431,16 @@ Library openprocurement_client.utils
1430 1431 ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title}
1431 1432 [return] ${filename}
1432 1433
  1434 +
  1435 +Отримати інформацію із cancellation
  1436 + [Arguments] ${username} ${tender_uaid} ${field_name} ${cancellation_index}
  1437 + openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
  1438 + ${cancellations}= Get Variable Value ${USERS.users['${username}'].tender_data.data.cancellations[${cancellation_index}]} ${USERS.users['${username}'].tender_data.data.cancellations}
  1439 + Log ${cancellations}
  1440 + ${field_value}= Get Variable Value ${USERS.users['${username}'].tender_data.data.cancellations[${cancellation_index}]['${field_name}']}
  1441 + Log ${field_value}
  1442 + [Return] ${field_value}
  1443 +
1433 1444 ##############################################################################
1434 1445 # Bid operations
1435 1446 ##############################################################################
... ... @@ -1742,28 +1753,41 @@ Library openprocurement_client.utils
1742 1753
1743 1754 Скасувати закупівлю
1744 1755 [Documentation]
1745   - ... [Arguments] Username, tender uaid, cancellation reason,
  1756 + ... [Arguments] Username, tender uaid, cancellation reason, cancellation reasonType
1746 1757 ... document and new description of document
1747 1758 ... [Description] Find tender using uaid, set cancellation reason, get data from cancel_tender
1748 1759 ... and call create_cancellation
1749 1760 ... After that add document to cancellation and change description of document
1750 1761 ... [Return] Nothing
1751   - [Arguments] ${username} ${tender_uaid} ${cancellation_reason} ${document} ${new_description}
  1762 + [Arguments] ${username} ${tender_uaid} ${cancellation_reason} ${cancellation_reasonType} ${document} ${new_description}
1752 1763 ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
1753   - ${data}= Create dictionary reason=${cancellation_reason}
  1764 + ${procurementMethodType}= set variable ${USERS.users['${tender_owner}'].initial_data.data.procurementMethodType}
  1765 + Log ${procurementMethodType}
  1766 + ${data}= Create dictionary
  1767 + ... reason=${cancellation_reason}
  1768 + ... reasonType=${cancellation_reasonType}
1754 1769 ${cancellation_data}= Create dictionary data=${data}
1755 1770 ${cancellation_data}= munch_dict arg=${cancellation_data}
  1771 + Log ${cancellation_data}
1756 1772 ${cancel_reply}= Call Method ${USERS.users['${username}'].client} create_cancellation
1757 1773 ... ${tender.data.id}
1758 1774 ... ${cancellation_data}
1759 1775 ... access_token=${tender.access.token}
1760 1776 ${cancellation_id}= Set variable ${cancel_reply.data.id}
1761   -
1762   - ${document_id}= openprocurement_client.Завантажити документацію до запиту на скасування ${username} ${tender_uaid} ${cancellation_id} ${document}
1763   -
1764   - openprocurement_client.Змінити опис документа в скасуванні ${username} ${tender_uaid} ${cancellation_id} ${document_id} ${new_description}
1765   -
1766   - openprocurement_client.Підтвердити скасування закупівлі ${username} ${tender_uaid} ${cancellation_id}
  1777 + ${document_id}= openprocurement_client.Завантажити документацію до запиту на скасування
  1778 + ... ${username}
  1779 + ... ${tender_uaid}
  1780 + ... ${cancellation_id}
  1781 + ... ${document}
  1782 + openprocurement_client.Змінити опис документа в скасуванні
  1783 + ... ${username}
  1784 + ... ${tender_uaid}
  1785 + ... ${cancellation_id}
  1786 + ... ${document_id}
  1787 + ... ${new_description}
  1788 + run keyword if '${procurementMethodType}' in ['belowThreshold', 'reporting', 'closeFrameworkAgreementUA']
  1789 + ... openprocurement_client.Підтвердити скасування закупівлі ${username} ${tender_uaid} ${cancellation_id}
  1790 + ... ELSE openprocurement_client.Перевести скасування закупівлі в період очікування ${username} ${tender_uaid} ${cancellation_id}
1767 1791
1768 1792
1769 1793 Завантажити документацію до запиту на скасування
... ... @@ -1819,6 +1843,23 @@ Library openprocurement_client.utils
1819 1843 Log ${reply}
1820 1844
1821 1845
  1846 +Перевести скасування закупівлі в період очікування
  1847 + [Documentation]
  1848 + ... [Arguments] Username, tender uaid, cancellation number
  1849 + ... Find tender using uaid, get cancellation test_confirmation data and call patch_cancellation
  1850 + ... [Return] Nothing
  1851 + [Arguments] ${username} ${tender_uaid} ${cancel_id}
  1852 + ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
  1853 + ${data}= test_cancel_pending_data ${cancel_id}
  1854 + Log ${data}
  1855 + ${reply}= Call Method ${USERS.users['${username}'].client} patch_cancellation
  1856 + ... ${tender.data.id}
  1857 + ... ${data}
  1858 + ... ${data.data.id}
  1859 + ... access_token=${tender.access.token}
  1860 + Log ${reply}
  1861 +
  1862 +
1822 1863 Отримати інформацію із документа до скасування
1823 1864 [Arguments] ${username} ${tender_uaid} ${cancel_id} ${doc_id} ${field_name}
1824 1865 ${tender}= openprocurement_client.Пошук тендера по ідентифікатору ${username} ${tender_uaid}
... ...
... ... @@ -103,23 +103,22 @@ ${PLAN_TENDER} ${True}
103 103 Можливість скасувати тендер
104 104
105 105
106   -Відображення активного статусу скасування тендера
107   - [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
108   - ... viewer
109   - ... ${USERS.users['${viewer}'].broker}
110   - ... tender_cancellation
111   - [Setup] Дочекатись синхронізації з майданчиком ${viewer}
112   - ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner} ${viewer}
113   - Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']}
114   - ... active
115   - ... cancellations[${cancellation_index}].status
  106 +Дочекатися закічення complait періоду
  107 + [Tags] ${USERS.users['${tender_owner}'].broker}: Скасування тендера
  108 + ... tender_owner
  109 + ... ${USERS.users['${tender_owner}'].broker}
  110 + ... tender_cancellation_stand_still
  111 + ... critical
  112 + Log ${TENDER['TENDER_UAID']}
  113 + ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner}
  114 + Дочекатись зміни статусу cancellations ${tender_owner} ${TENDER['TENDER_UAID']} active ${cancellation_index}
116 115
117 116
118 117 Відображення причини скасування тендера
119 118 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
120 119 ... viewer
121 120 ... ${USERS.users['${viewer}'].broker}
122   - ... tender_cancellation
  121 + ... tender_cancellation_view
123 122 ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner} ${viewer}
124 123 Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']}
125 124 ... ${USERS.users['${tender_owner}']['tender_cancellation_data']['cancellation_reason']}
... ... @@ -130,7 +129,7 @@ ${PLAN_TENDER} ${True}
130 129 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
131 130 ... viewer
132 131 ... ${USERS.users['${viewer}'].broker}
133   - ... tender_cancellation
  132 + ... tender_cancellation_view
134 133 Звірити відображення поля description документа ${USERS.users['${tender_owner}']['tender_cancellation_data']['document']['doc_id']} до скасування ${USERS.users['${tender_owner}']['tender_cancellation_data']['cancellation_id']} із ${USERS.users['${tender_owner}']['tender_cancellation_data']['description']} для користувача ${viewer}
135 134
136 135
... ... @@ -138,7 +137,7 @@ ${PLAN_TENDER} ${True}
138 137 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
139 138 ... viewer
140 139 ... ${USERS.users['${viewer}'].broker}
141   - ... tender_cancellation
  140 + ... tender_cancellation_view
142 141 Звірити відображення поля title документа ${USERS.users['${tender_owner}']['tender_cancellation_data']['document']['doc_id']} до скасування ${USERS.users['${tender_owner}']['tender_cancellation_data']['cancellation_id']} із ${USERS.users['${tender_owner}']['tender_cancellation_data']['document']['doc_name']} для користувача ${viewer}
143 142
144 143
... ... @@ -146,9 +145,21 @@ ${PLAN_TENDER} ${True}
146 145 [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
147 146 ... viewer
148 147 ... ${USERS.users['${viewer}'].broker}
149   - ... tender_cancellation
  148 + ... tender_cancellation_view
150 149 Звірити відображення вмісту документа ${USERS.users['${tender_owner}']['tender_cancellation_data']['document']['doc_id']} до скасування ${USERS.users['${tender_owner}']['tender_cancellation_data']['cancellation_id']} з ${USERS.users['${tender_owner}']['tender_cancellation_data']['document']['doc_content']} для користувача ${viewer}
151 150
  151 +
  152 +Відображення активного статусу скасування тендера
  153 + [Tags] ${USERS.users['${viewer}'].broker}: Відображення скасування тендера
  154 + ... viewer
  155 + ... ${USERS.users['${viewer}'].broker}
  156 + ... tender_cancellation_view
  157 + [Setup] Дочекатись синхронізації з майданчиком ${viewer}
  158 + ${cancellation_index}= Отримати останній індекс cancellations ${tender_owner} ${viewer}
  159 + Звірити поле тендера із значенням ${viewer} ${TENDER['TENDER_UAID']}
  160 + ... active
  161 + ... cancellations[${cancellation_index}].status
  162 +
152 163 ##############################################################################################
153 164 # DELETING LOT
154 165 ##############################################################################################
... ... @@ -164,24 +175,26 @@ ${PLAN_TENDER} ${True}
164 175
165 176 *** Keywords ***
166 177 Можливість скасувати тендер
167   - ${cancellation_data}= Підготувати дані про скасування
  178 + ${cancellation_data}= Підготувати дані про скасування ${USERS.users['${tender_owner}'].initial_data.data.procurementMethodType}
168 179 Run As ${tender_owner}
169 180 ... Скасувати закупівлю
170 181 ... ${TENDER['TENDER_UAID']}
171 182 ... ${cancellation_data['cancellation_reason']}
  183 + ... ${cancellation_data['cancellation_reasonType']}
172 184 ... ${cancellation_data['document']['doc_path']}
173 185 ... ${cancellation_data['description']}
174 186 Set To Dictionary ${USERS.users['${tender_owner}']} tender_cancellation_data=${cancellation_data}
175 187
176 188
177 189 Можливість скасувати ${index} лот
178   - ${cancellation_data}= Підготувати дані про скасування
  190 + ${cancellation_data}= Підготувати дані про скасування ${USERS.users['${tender_owner}'].initial_data.data.procurementMethodType}
179 191 ${lot_id}= get_id_from_object ${USERS.users['${tender_owner}'].initial_data.data.lots[${index}]}
180 192 Run As ${tender_owner}
181 193 ... Скасувати лот
182 194 ... ${TENDER['TENDER_UAID']}
183 195 ... ${lot_id}
184 196 ... ${cancellation_data['cancellation_reason']}
  197 + ... ${cancellation_data['cancellation_reasonType']}
185 198 ... ${cancellation_data['document']['doc_path']}
186 199 ... ${cancellation_data['description']}
187 200 Set To Dictionary ${USERS.users['${tender_owner}']} lot_cancellation_data=${cancellation_data}
... ...
... ... @@ -12,19 +12,19 @@ from munch import munchify
12 12 from op_faker import OP_Provider
13 13 from .local_time import get_now, TZ
14 14
15   -
16 15 fake_en = Factory.create(locale='en_US')
17 16 fake_ru = Factory.create(locale='ru_RU')
18 17 fake_uk = Factory.create(locale='uk_UA')
19 18 fake_uk.add_provider(OP_Provider)
20 19 fake = fake_uk
21 20 used_identifier_id = []
22   -mode_open = ["belowThreshold", "aboveThresholdUA", "aboveThresholdEU",
23   - "aboveThresholdUA.defense", "competitiveDialogueUA", "competitiveDialogueEU", "esco", "closeFrameworkAgreementUA"]
24   -mode_limited = ["reporting", "negotiation.quick", "negotiation"]
  21 +mode_open = ["belowThreshold", "aboveThresholdUA", "aboveThresholdEU",
  22 + "aboveThresholdUA.defense", "competitiveDialogueUA", "competitiveDialogueEU", "esco",
  23 + "closeFrameworkAgreementUA"]
  24 +mode_limited = ["reporting", "negotiation.quick", "negotiation"]
25 25 violationType = ["corruptionDescription", "corruptionProcurementMethodType", "corruptionChanges",
26   - "corruptionPublicDisclosure", "corruptionBiddingDocuments", "documentsForm",
27   - "corruptionAwarded", "corruptionCancelled", "corruptionContracting"]
  26 + "corruptionPublicDisclosure", "corruptionBiddingDocuments", "documentsForm",
  27 + "corruptionAwarded", "corruptionCancelled", "corruptionContracting"]
28 28
29 29 # This workaround fixes an error caused by missing "catch_phrase" class method
30 30 # for the "ru_RU" locale in Faker >= 0.7.4
... ... @@ -106,10 +106,10 @@ def create_fake_period(days=0, hours=0, minutes=0):
106 106
107 107
108 108 def subtraction(value1, value2):
109   - if "." in str (value1) or "." in str (value2):
110   - return (float (value1) - float (value2))
  109 + if "." in str(value1) or "." in str(value2):
  110 + return (float(value1) - float(value2))
111 111 else:
112   - return (int (value1) - int (value2))
  112 + return (int(value1) - int(value2))
113 113
114 114
115 115 def create_fake_value_amount():
... ... @@ -132,7 +132,7 @@ def translate_country_en(country):
132 132
133 133
134 134 def convert_amount(amount):
135   - return (("{:,}".format(float (amount))).replace(',',' ').replace('.',','))
  135 + return ("{:,}".format(float(amount))).replace(',', ' ').replace('.', ',')
136 136
137 137
138 138 def translate_country_ru(country):
... ... @@ -201,7 +201,7 @@ def test_tender_data(params,
201 201 accelerator = accelerator \
202 202 if accelerator else params['intervals']['accelerator']
203 203 data['procurementMethodDetails'] = 'quick, ' \
204   - 'accelerator={}'.format(accelerator)
  204 + 'accelerator={}'.format(accelerator)
205 205 data["procuringEntity"]["kind"] = "other"
206 206 if data.get("mode") == "test":
207 207 data["title"] = u"[ТЕСТУВАННЯ] {}".format(data["title"])
... ... @@ -318,7 +318,7 @@ def test_tender_data_planning(params):
318 318 "mode": "test",
319 319 "items": [],
320 320 "buyers": []
321   - }
  321 + }
322 322 data["procuringEntity"]["name"] = data["procuringEntity"]["identifier"]["legalName"]
323 323 buyers = test_buyers_data()
324 324 buyers["name"] = buyers["identifier"]["legalName"]
... ... @@ -345,7 +345,8 @@ def test_tender_data_planning(params):
345 345 item_data = test_item_data(id_cpv)
346 346 del item_data['deliveryAddress']
347 347 del item_data['deliveryLocation']
348   - item_data['deliveryDate']['endDate'] = (get_now() + timedelta(days=10)).replace(hour=0, minute=0, second=0, microsecond=0).isoformat()
  348 + item_data['deliveryDate']['endDate'] = (get_now() + timedelta(days=10)).replace(hour=0, minute=0, second=0,
  349 + microsecond=0).isoformat()
349 350 del item_data['deliveryDate']['startDate']
350 351 data['items'].append(item_data)
351 352 if params['mode'] in mode_open:
... ... @@ -510,6 +511,15 @@ def test_confirm_data(id):
510 511 })
511 512
512 513
  514 +def test_cancel_pending_data(id):
  515 + return munchify({
  516 + "data": {
  517 + "status": "pending",
  518 + "id": id
  519 + }
  520 + })
  521 +
  522 +
513 523 def test_submit_claim_data(claim_id):
514 524 return munchify({
515 525 "data": {
... ... @@ -581,12 +591,12 @@ def test_bid_value(max_value_amount, vat_included):
581 591 def test_bid_value_esco(tender_data):
582 592 annual_cost = []
583 593 for i in range(0, 21):
584   - cost=round(random.uniform(1, 100), 2)
  594 + cost = round(random.uniform(1, 100), 2)
585 595 annual_cost.append(cost)
586 596 if tender_data['fundingKind'] == "budget":
587   - yearly_percentage=round(random.uniform(0.01, float(tender_data['yearlyPaymentsPercentageRange'])), 5)
  597 + yearly_percentage = round(random.uniform(0.01, float(tender_data['yearlyPaymentsPercentageRange'])), 5)
588 598 else:
589   - yearly_percentage= 0.8
  599 + yearly_percentage = 0.8
590 600 # when tender fundingKind is budget, yearlyPaymentsPercentageRange should be less or equal 0.8, and more or equal 0
591 601 # when tender fundingKind is other, yearlyPaymentsPercentageRange should be equal 0.8
592 602 return munchify({
... ... @@ -613,7 +623,9 @@ def test_bid_data_selection(data, index):
613 623 })
614 624 bid.data['status'] = 'draft'
615 625 bid.data['parameters'] = data['agreements'][0]['contracts'][index]['parameters']
616   - bid.data['lotValues'] = [test_bid_value(data['agreements'][0]['contracts'][index]['value']['amount'], data['agreements'][0]['contracts'][index]['value']['valueAddedTaxIncluded'])]
  626 + bid.data['lotValues'] = [test_bid_value(data['agreements'][0]['contracts'][index]['value']['amount'],
  627 + data['agreements'][0]['contracts'][index]['value'][
  628 + 'valueAddedTaxIncluded'])]
617 629 return bid
618 630
619 631
... ... @@ -641,8 +653,10 @@ def test_item_data(cpv=None):
641 653 startDate = fake.random_int(min=1, max=30)
642 654 endDate = startDate + fake.random_int(min=1, max=7)
643 655 data["deliveryDate"] = {
644   - "startDate": (get_now() + timedelta(days=startDate)).astimezone(TZ).replace(hour=0, minute=0, second=0, microsecond=0).isoformat(),
645   - "endDate": (get_now() + timedelta(days=endDate)).astimezone(TZ).replace(hour=0, minute=0, second=0, microsecond=0).isoformat()
  656 + "startDate": (get_now() + timedelta(days=startDate)).astimezone(TZ).replace(hour=0, minute=0, second=0,
  657 + microsecond=0).isoformat(),
  658 + "endDate": (get_now() + timedelta(days=endDate)).astimezone(TZ).replace(hour=0, minute=0, second=0,
  659 + microsecond=0).isoformat()
646 660 }
647 661 data["deliveryAddress"]["countryName_en"] = translate_country_en(data["deliveryAddress"]["countryName"])
648 662 data["deliveryAddress"]["countryName_ru"] = translate_country_ru(data["deliveryAddress"]["countryName"])
... ... @@ -734,7 +748,8 @@ def test_tender_data_openeu(params, submissionMethodDetails, plan_data):
734 748 data['procuringEntity']['name_en'] = fake_en.name()
735 749 data['procuringEntity']['contactPoint']['name_en'] = fake_en.name()
736 750 data['procuringEntity']['contactPoint']['availableLanguage'] = "en"
737   - data['procuringEntity']['identifier']['legalName_en'] = u"Institution \"Vinnytsia City Council primary and secondary general school № 10\""
  751 + data['procuringEntity']['identifier'][
  752 + 'legalName_en'] = u"Institution \"Vinnytsia City Council primary and secondary general school № 10\""
738 753 data['procuringEntity']['kind'] = 'general'
739 754 return data
740 755
... ... @@ -784,34 +799,34 @@ def test_tender_data_selection(procedure_intervals, params, submissionMethodDeta
784 799 data['agreements'] = [{'id': tender_data['data']['agreements'][0]['id']}]
785 800 del data['value']
786 801 del data['minimalStep']
787   - return munchify({'data':data})
  802 + return munchify({'data': data})
788 803
789 804
790 805 def test_change_data():
791 806 return munchify(
792   - {
793   - "data":
794 807 {
795   - "rationale": fake.description(),
796   - "rationale_en": fake_en.sentence(nb_words=10, variable_nb_words=True),
797   - "rationale_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True),
798   - "rationaleTypes": fake.rationaleTypes(amount=3),
799   - "status": "pending"
800   - }
801   - })
  808 + "data":
  809 + {
  810 + "rationale": fake.description(),
  811 + "rationale_en": fake_en.sentence(nb_words=10, variable_nb_words=True),
  812 + "rationale_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True),
  813 + "rationaleTypes": fake.rationaleTypes(amount=3),
  814 + "status": "pending"
  815 + }
  816 + })
802 817
803 818
804 819 def test_agreement_change_data(rationaleType):
805 820 return munchify(
806   - {
807   - "data":
808 821 {
809   - "rationale": fake.description(),
810   - "rationale_en": fake_en.sentence(nb_words=10, variable_nb_words=True),
811   - "rationale_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True),
812   - "rationaleType": rationaleType,
813   - }
814   - })
  822 + "data":
  823 + {
  824 + "rationale": fake.description(),
  825 + "rationale_en": fake_en.sentence(nb_words=10, variable_nb_words=True),
  826 + "rationale_ru": fake_ru.sentence(nb_words=10, variable_nb_words=True),
  827 + "rationaleType": rationaleType,
  828 + }
  829 + })
815 830
816 831
817 832 def test_modification_data(item_id, field_name, field_value):
... ... @@ -823,24 +838,21 @@ def test_modification_data(item_id, field_name, field_value):
823 838 }
824 839 ]
825 840 }
826   - return munchify({'data':data})
  841 + return munchify({'data': data})
827 842
828 843
829 844 def get_hash(file_contents):
830   - return ("md5:"+hashlib.md5(file_contents).hexdigest())
  845 + return ("md5:" + hashlib.md5(file_contents).hexdigest())
831 846
832 847
833   -def tets_monitoring_data( tender_id, accelerator=None):
834   - data = {
835   - "reasons": [random.choice(["public", "fiscal", "indicator", "authorities", "media"])],
836   - "tender_id": tender_id,
837   - "procuringStages": [random.choice(["awarding", "contracting", "planning"])],
838   - "parties": [test_party()],
839   - "mode": "test"
840   - }
841   - data['monitoringDetails'] = 'quick, ' \
842   - 'accelerator={}'.format(accelerator)
843   - return munchify({'data':data})
  848 +def test_monitoring_data(tender_id, accelerator=None):
  849 + data = {"reasons": [random.choice(["public", "fiscal", "indicator", "authorities", "media"])],
  850 + "tender_id": tender_id,
  851 + "procuringStages": [random.choice(["awarding", "contracting", "planning"])],
  852 + "parties": [test_party()],
  853 + "mode": "test",
  854 + 'monitoringDetails': 'quick, ' 'accelerator={}'.format(accelerator)}
  855 + return munchify({'data': data})
844 856
845 857
846 858 def test_party():
... ... @@ -852,26 +864,26 @@ def test_party():
852 864
853 865 def test_dialogue():
854 866 return munchify(
855   - {
856   - "data":
857 867 {
858   - "title": fake_en.sentence(nb_words=10, variable_nb_words=True),
859   - "description": fake_en.sentence(nb_words=10, variable_nb_words=True)
860   - }
861   - })
  868 + "data":
  869 + {
  870 + "title": fake_en.sentence(nb_words=10, variable_nb_words=True),
  871 + "description": fake_en.sentence(nb_words=10, variable_nb_words=True)
  872 + }
  873 + })
862 874
863 875
864 876 def test_conclusion(violationOccurred, relatedParty_id):
865 877 return munchify(
866   - {
867   - "data": {
868   - "conclusion": {
869   - "violationOccurred": violationOccurred,
870   - "violationType": random.choice(violationType),
871   - "relatedParty": relatedParty_id,
  878 + {
  879 + "data": {
  880 + "conclusion": {
  881 + "violationOccurred": violationOccurred,
  882 + "violationType": random.choice(violationType),
  883 + "relatedParty": relatedParty_id,
  884 + }
872 885 }
873   - }
874   - })
  886 + })
875 887
876 888
877 889 def test_status_data(status, relatedParty_id=None):
... ... @@ -926,7 +938,7 @@ def test_tender_data_esco(params, submissionMethodDetails, plan_data):
926 938 if index == 0:
927 939 data['lots'][index]['minimalStepPercentage'] = data['minimalStepPercentage']
928 940 else:
929   - data['lots'][index]['minimalStepPercentage'] = round((float(data['minimalStepPercentage'])-0.0002), 5)
  941 + data['lots'][index]['minimalStepPercentage'] = round((float(data['minimalStepPercentage']) - 0.0002), 5)
930 942 if data['fundingKind'] == "budget":
931 943 data['lots'][index]['yearlyPaymentsPercentageRange'] = float(round(random.uniform(0.01, 0.8), 5))
932 944 else:
... ... @@ -968,25 +980,25 @@ def percentage_generation(number_of_milestones):
968 980
969 981 def invalid_INN_data():
970 982 return munchify({
971   - "scheme": "INN",
972   - "description": "Insulin (human)",
973   - "id": "insulin (human)"
  983 + "scheme": "INN",
  984 + "description": "Insulin (human)",
  985 + "id": "insulin (human)"
974 986 })
975 987
976 988
977 989 def invalid_cost_data():
978 990 return munchify({
979   - "scheme": "UA-ROAD",
980   - "id": "H-08",
981   - "description": "Бориспіль - Дніпро - Запоріжжя (через м. Кременчук) - Маріуполь"
  991 + "scheme": "UA-ROAD",
  992 + "id": "H-08",
  993 + "description": "Бориспіль - Дніпро - Запоріжжя (через м. Кременчук) - Маріуполь"
982 994 })
983 995
984 996
985 997 def invalid_gmdn_data():
986 998 return munchify({
987   - "scheme": "GMDN",
988   - "id": "10082",
989   - "description": "Змішувач амальгами для стоматології"
  999 + "scheme": "GMDN",
  1000 + "id": "10082",
  1001 + "description": "Змішувач амальгами для стоматології"
990 1002 })
991 1003
992 1004
... ... @@ -1009,7 +1021,7 @@ def invalid_buyers_data():
1009 1021 "legalName": "Київський Тестовий Ліцей",
1010 1022 },
1011 1023 "name": "Київський Тестовий Ліцей"
1012   - }
  1024 + }
1013 1025 return munchify(buyers)
1014 1026
1015 1027
... ... @@ -1047,3 +1059,15 @@ def breakdown_value_generation(number_of_breakdown, plan_value):
1047 1059 value_data = [round(random.uniform(1, plan_value / number_of_breakdown), 2) for _ in range(number_of_breakdown - 1)]
1048 1060 value_data.append(round(plan_value - sum(value_data), 2))
1049 1061 return value_data
  1062 +
  1063 +
  1064 +def test_cancellation_data(procurement_method_type):
  1065 + if procurement_method_type == "aboveThresholdUA.defense":
  1066 + result = random.choice(["noDemand", "unFixable", "expensesCut"])
  1067 + elif procurement_method_type in ["negotiation", "negotiation.quick"]:
  1068 + result = random.choice(["noObjectiveness", "unFixable", "noDemand", "expensesCut", "dateViolation"])
  1069 + elif procurement_method_type == "belowThreshold":
  1070 + result = random.choice(["noDemand", "unFixable", "expensesCut"])
  1071 + else:
  1072 + result = random.choice(["noDemand", "unFixable", "forceMajeure", "expensesCut"])
  1073 + return munchify({"reasonType": result})
... ...
... ... @@ -353,6 +353,8 @@ Get Broker Property By Username
353 353
354 354
355 355 Підготувати дані про скасування
  356 + [Arguments] ${procurementMethodType}
  357 + ${cancellation_data}= test_cancellation_data ${procurementMethodType}
356 358 ${cancellation_reason}= create_fake_sentence
357 359 ${cancellation_reason}= field_with_id c ${cancellation_reason}
358 360 ${cancellation_id}= get_id_from_string ${cancellation_reason}
... ... @@ -366,6 +368,7 @@ Get Broker Property By Username
366 368 ${new_description}= create_fake_sentence
367 369 ${cancellation_data}= Create Dictionary
368 370 ... cancellation_reason=${cancellation_reason}
  371 + ... cancellation_reasonType=${cancellation_data.reasonType}
369 372 ... cancellation_id=${cancellation_id}
370 373 ... document=${document}
371 374 ... description=${new_description}
... ... @@ -1018,6 +1021,12 @@ Require Failure
1018 1021 Порівняти об'єкти ${left} ${right}
1019 1022
1020 1023
  1024 +Звірити статус cancellations
  1025 + [Arguments] ${username} ${tender_uaid} ${left} ${cancellation_index}
  1026 + ${right}= Run as ${username} Отримати інформацію із cancellation ${tender_uaid} status ${cancellation_index}
  1027 + Порівняти об'єкти ${left} ${right}
  1028 +
  1029 +
1021 1030 Дочекатись дати початку періоду уточнення
1022 1031 [Arguments] ${username} ${tender_uaid}
1023 1032 Оновити LAST_MODIFICATION_DATE
... ... @@ -1226,6 +1235,19 @@ Require Failure
1226 1235 ... ${award_index}
1227 1236
1228 1237
  1238 +Дочекатись зміни статусу cancellations
  1239 + [Arguments] ${username} ${tender_uaid} ${status} ${cancellation_index}
  1240 + Дочекатись синхронізації з майданчиком ${username}
  1241 + Wait until keyword succeeds
  1242 + ... 12 min
  1243 + ... 60 sec
  1244 + ... Звірити статус cancellations
  1245 + ... ${username}
  1246 + ... ${tender_uaid}
  1247 + ... ${status}
  1248 + ... ${cancellation_index}
  1249 +
  1250 +
1229 1251 Оновити LAST_MODIFICATION_DATE
1230 1252 [Documentation]
1231 1253 ... Variable ``${TEST_STATUS}`` is only available in test case teardown.
... ...
... ... @@ -60,7 +60,7 @@ from .initial_data import (
60 60 test_tender_data_framework_agreement,
61 61 test_tender_data_selection,
62 62 test_bid_competitive_data,
63   - tets_monitoring_data,
  63 + test_monitoring_data,
64 64 test_party,
65 65 test_dialogue,
66 66 test_conclusion,
... ... @@ -82,7 +82,9 @@ from .initial_data import (
82 82 test_plan_cancel_data,
83 83 test_confirm_plan_cancel_data,
84 84 test_accept_complaint_data,
85   - test_reject_complaint_data
  85 + test_reject_complaint_data,
  86 + test_cancellation_data,
  87 + test_cancel_pending_data
86 88 )
87 89 from barbecue import chef
88 90 from restkit import request
... ...
... ... @@ -9,6 +9,9 @@
9 9
10 10 -i create_tender
11 11 -i find_tender
  12 +-i lot_cancellation
12 13 -i tender_cancellation
  14 +-i tender_cancellation_stand_still
  15 +-i tender_cancellation_view
13 16 -i lot_cancellation
14 17 -i delete_lot
\ No newline at end of file
... ...
  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-qualification_approve_first_bid
  35 +-i pre-qualification_approve_second_bid
  36 +-i pre-qualification_approve_third_bid
  37 +
  38 +-i pre-qualification_approve_qualifications
  39 +
  40 +-i stage2_pending_status_view
  41 +
  42 +-i wait_bridge_for_work
  43 +
  44 +-i get_second_stage
  45 +
  46 +-i compare_stages
  47 +
  48 +-i save_tender_second_stage
  49 +
  50 +-i activate_second_stage
  51 +
  52 +-i make_bid_by_provider_second_stage
  53 +-i make_bid_by_provider1_second_stage
  54 +
  55 +-i qualification_add_doc_to_first_award
  56 +-i qualification_approve_first_award
  57 +-i awards_check_by_dfs
  58 +
  59 +-i contract_stand_still
  60 +-i contract_view
  61 +-i modify_contract_amount_net
  62 +-i modify_contract_value
  63 +-i modify_contract
  64 +-i add_doc_to_contract
  65 +-i contract_doc_documentOf
  66 +-i contract_sign
  67 +
  68 +-i find_contract
  69 +-i access_contract
  70 +-i submit_change
  71 +-i view_change
  72 +-i upload_change_document
  73 +-i modify_change
  74 +-i change_contract_amountNet
  75 +-i change_contract_amount
  76 +-i apply_change
  77 +-i add_contract_doc
  78 +-i termination_reasons
  79 +-i amount_paid
  80 +-i change_amount_paid
  81 +-i contract_termination
\ No newline at end of file
... ...
  1 +-v MODE:open_competitive_dialogue
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-v TENDER_MEAT:True
  7 +-v ITEM_MEAT:True
  8 +-v LOT_MEAT:True
  9 +
  10 +
  11 +-i create_tender
  12 +-i find_tender
  13 +-i tender_view
  14 +-i tender_view_milestone
  15 +-i tender_view_value
  16 +-i tender_view_minimalStep
  17 +-i tender_view_deliveryDate
  18 +-i tender_view_quantity
  19 +-i tender_view_unit_name
  20 +-i tender_view_unit_code
  21 +-i tender_view_coordinates
  22 +-i meat_view
  23 +-i lot_view
  24 +-i lot_view_value
  25 +-i lot_view_minimalStep
  26 +
  27 +-i extend_tendering_period
  28 +-i add_tender_doc
  29 +-i add_lot_doc
  30 +-i modify_lot_value_amount
  31 +-i add_item
  32 + -i delete_item
  33 +-i add_tender_meat
  34 + -i delete_tender_meat
  35 +-i add_lot_meat
  36 + -i delete_lot_meat
  37 +-i add_item_meat
  38 + -i delete_item_meat
  39 +
  40 +-i ask_question_to_tender
  41 + -i answer_question_to_tender
  42 +-i ask_question_to_item
  43 + -i answer_question_to_item
  44 +-i ask_question_to_lot
  45 + -i answer_question_to_lot
  46 +-i modify_tender_after_questions
  47 +-i modify_lot_after_questions
  48 +
  49 +-i make_bid_without_related_lot
  50 +-i make_bid_by_provider
  51 + -i add_doc_to_bid_by_provider
  52 +-i make_bid_by_provider1
  53 +-i make_bid_by_provider2
  54 +
  55 +-i bid_view_in_tendering_period
  56 +
  57 +-i add_bid_doc_after_tendering_period_by_provider
  58 +-i modify_bid_doc_after_tendering_period_by_provider
  59 +-i modify_bid_after_tendering_period_by_provider1
  60 +-i cancel_bid_after_tendering_period_by_provider1
  61 +
  62 +-i ask_question_to_tender_after_tendering_period
  63 +-i ask_question_to_item_after_tendering_period
  64 +-i ask_question_to_lot_after_tendering_period
  65 +
  66 +-i open_tender_view
  67 +-i open_modify_tender_in_tendering_period
  68 + -i open_confirm_first_bid
  69 + -i open_confirm_second_bid
  70 + -i open_confirm_third_bid
  71 +
  72 +-i openeu_make_bid_doc_private_by_provider
  73 +
  74 +-i pre-qualification_add_doc_to_tender
  75 +-i pre-qualification_add_doc_to_lot
  76 +
  77 +-i pre-qualification_view
  78 +
  79 +-i pre-qualification_approve_first_bid
  80 +-i pre-qualification_approve_second_bid
  81 +-i pre-qualification_approve_third_bid
  82 +
  83 +-i pre-qualification_approve_qualifications
  84 +
  85 +-i stage2_pending_status_view
  86 +
  87 +-i wait_bridge_for_work
  88 +
  89 +-i get_second_stage
  90 +
  91 +-i compare_stages
  92 +
  93 +-i save_tender_second_stage
  94 +
  95 +-i activate_second_stage
  96 +
  97 +-i make_bid_by_provider_second_stage
  98 +-i make_bid_by_provider1_second_stage
  99 +
  100 +-i pre-qualification_approve_first_bid_second_stage
  101 +-i pre-qualification_approve_second_bid_second_stage
  102 +
  103 +-i pre-qualification_approve_qualifications_second_stage
  104 +
  105 +-i qualification_add_doc_to_first_award
  106 +-i qualification_approve_first_award
  107 +-i awards_check_by_dfs
  108 +
  109 +-i contract_stand_still
  110 +-i contract_view
  111 +-i modify_contract_invalid_amount
  112 +-i modify_contract_invalid_amountNet_tender_vat_true
  113 +-i modify_contract_amount_net
  114 +-i modify_contract_value
  115 +-i modify_contract
  116 +-i add_doc_to_contract
  117 +-i contract_doc_documentOf
  118 +-i contract_sign
  119 +
  120 +-i find_contract
  121 +-i access_contract
  122 +-i submit_change
  123 +-i view_change
  124 +-i upload_change_document
  125 +-i modify_change
  126 +-i change_contract_amountNet
  127 +-i change_contract_amount
  128 +-i apply_change
  129 +-i add_contract_doc
  130 +-i termination_reasons
  131 +-i amount_paid
  132 +-i change_amount_paid
  133 +-i contract_termination
\ No newline at end of file
... ...
  1 +-v MODE:open_esco
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-v TENDER_MEAT:True
  7 +-v ITEM_MEAT:False
  8 +-v LOT_MEAT:False
  9 +
  10 +-v FUNDING_KIND:budget
  11 +
  12 +-i create_tender
  13 +-i find_tender
  14 +-i tender_view
  15 + -i esco_tender_view
  16 + -i open_tender_view
  17 +-i meat_view
  18 +-i lot_view
  19 + -i esco_lot_view
  20 +
  21 +-i extend_tendering_period
  22 +-i add_tender_doc
  23 +-i ask_question_to_tender
  24 +-i answer_question_to_tender
  25 +-i modify_tender_after_questions
  26 +
  27 +-i make_bid_by_provider
  28 + -i add_doc_to_bid_by_provider
  29 +-i make_bid_by_provider1
  30 +
  31 +-i open_modify_tender_in_tendering_period
  32 + -i open_confirm_first_bid
  33 + -i open_confirm_second_bid
  34 +
  35 +-i openeu_make_bid_doc_private_by_provider
  36 +-i openeu_add_financial_bid_doc_by_provider
  37 +-i openeu_add_qualification_bid_doc_by_provider
  38 +-i openeu_add_eligibility_bid_doc_by_provider
  39 +
  40 +-i pre-qualification_view
  41 +-i pre-qualification_approve_first_bid
  42 +-i pre-qualification_approve_second_bid
  43 +-i pre-qualification_approve_qualifications
  44 +
  45 +-i qualification_add_doc_to_first_award
  46 +-i qualification_approve_first_award
  47 +-i awards_check_by_dfs
  48 +
  49 +-i contract_stand_still
  50 +-i contract_view
  51 +-i contract_view_dateSigned
  52 +-i modify_contract_amount_net
  53 +-i modify_contract
  54 +-i add_doc_to_contract
  55 +-i add_doc_to_contract_content
  56 +-i contract_doc_documentOf
  57 +-i add_doc_to_contract_title
  58 +-i contract_sign
\ No newline at end of file
... ...
  1 +-v MODE:openeu
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-v TENDER_MEAT:True
  7 +-v ITEM_MEAT:True
  8 +-v LOT_MEAT:True
  9 +
  10 +
  11 +-i create_tender
  12 +-i find_tender
  13 +-i tender_view
  14 +-i tender_view_milestone
  15 +-i tender_view_value
  16 +-i tender_view_minimalStep
  17 +-i tender_view_deliveryDate
  18 +-i tender_view_quantity
  19 +-i tender_view_unit_name
  20 +-i tender_view_unit_code
  21 +-i tender_view_coordinates
  22 +-i meat_view
  23 +-i lot_view
  24 +-i lot_view_value
  25 +-i lot_view_minimalStep
  26 +
  27 +-i extend_tendering_period
  28 +-i add_tender_doc
  29 +-i add_lot_doc
  30 +-i modify_lot_value_amount
  31 +-i add_lot
  32 + -i delete_lot
  33 +-i add_item
  34 + -i delete_item
  35 +-i add_tender_meat
  36 + -i delete_tender_meat
  37 +-i add_lot_meat
  38 + -i delete_lot_meat
  39 +-i add_item_meat
  40 + -i delete_item_meat
  41 +
  42 +-i ask_question_to_tender
  43 + -i answer_question_to_tender
  44 +-i ask_question_to_item
  45 + -i answer_question_to_item
  46 +-i ask_question_to_lot
  47 + -i answer_question_to_lot
  48 +-i modify_tender_after_questions
  49 +-i modify_lot_after_questions
  50 +
  51 +-i make_bid_without_related_lot
  52 +-i make_bid_without_parameters
  53 +-i make_bid_by_provider
  54 + -i modify_bid_by_provider
  55 + -i add_doc_to_bid_by_provider
  56 +-i make_bid_by_provider1
  57 +-i bid_view_in_tendering_period
  58 +
  59 +-i add_bid_doc_after_tendering_period_by_provider
  60 +-i modify_bid_doc_after_tendering_period_by_provider
  61 +-i modify_bid_after_tendering_period_by_provider1
  62 +-i cancel_bid_after_tendering_period_by_provider1
  63 +
  64 +-i ask_question_to_tender_after_tendering_period
  65 +-i ask_question_to_item_after_tendering_period
  66 +-i ask_question_to_lot_after_tendering_period
  67 +
  68 +-i open_tender_view
  69 +-i open_modify_tender_in_tendering_period
  70 + -i open_confirm_first_bid
  71 + -i open_confirm_second_bid
  72 +
  73 +-i openeu_make_bid_doc_private_by_provider
  74 +-i openeu_add_financial_bid_doc_by_provider
  75 +-i openeu_add_qualification_bid_doc_by_provider
  76 +-i openeu_add_eligibility_bid_doc_by_provider
  77 +
  78 +-i pre-qualification_add_doc_to_tender
  79 +-i pre-qualification_add_doc_to_lot
  80 +
  81 +-i pre-qualification_view
  82 +
  83 +-i pre-qualification_approve_first_bid
  84 +-i pre-qualification_reject_second_bid
  85 +-i pre-qualification_cancel_second_bid_qualification
  86 +-i pre-qualification_approve_second_bid
  87 +
  88 +-i pre-qualification_approve_qualifications
  89 +
  90 +-i qualification_add_doc_to_first_award
  91 +-i qualification_approve_first_award
  92 +-i awards_check_by_dfs
  93 +
  94 +-i contract_stand_still
  95 +-i contract_view
  96 +-i modify_contract_invalid_amount
  97 +-i modify_contract_invalid_amountNet_tender_vat_true
  98 +-i modify_contract_amount_net
  99 +-i modify_contract_value
  100 +-i modify_contract
  101 +-i add_doc_to_contract
  102 +-i add_doc_to_contract_title
  103 +-i add_doc_to_contract_content
  104 +-i contract_doc_documentOf
  105 +-i contract_sign
  106 +
  107 +-i find_contract
  108 +-i access_contract
  109 +-i submit_change
  110 +-i view_change
  111 +-i upload_change_document
  112 +-i modify_change
  113 +-i change_contract_amountNet
  114 +-i change_contract_amount
  115 +-i apply_change
  116 +-i add_contract_doc
  117 +-i termination_reasons
  118 +-i amount_paid
  119 +-i change_amount_paid
  120 +-i contract_termination
\ No newline at end of file
... ...
  1 +-v MODE:openua
  2 +
  3 +-v NUMBER_OF_ITEMS:1
  4 +-v NUMBER_OF_LOTS:1
  5 +
  6 +-v TENDER_MEAT:True
  7 +-v ITEM_MEAT:True
  8 +-v LOT_MEAT:True
  9 +
  10 +
  11 +-i create_tender
  12 +-i find_tender
  13 +-i tender_view
  14 +-i tender_view_milestone
  15 +-i tender_view_value
  16 +-i tender_view_minimalStep
  17 +-i tender_view_deliveryDate
  18 +-i tender_view_quantity
  19 +-i tender_view_unit_name
  20 +-i tender_view_unit_code
  21 +-i tender_view_coordinates
  22 +-i meat_view
  23 +-i lot_view
  24 +-i lot_view_value
  25 +-i lot_view_minimalStep
  26 +
  27 +-i extend_tendering_period
  28 +-i add_tender_doc
  29 +-i add_lot_doc
  30 +-i modify_lot_value_amount
  31 +-i add_lot
  32 + -i delete_lot
  33 +-i add_item
  34 + -i delete_item
  35 +-i add_tender_meat
  36 + -i delete_tender_meat
  37 +-i add_lot_meat
  38 + -i delete_lot_meat
  39 +-i add_item_meat
  40 + -i delete_item_meat
  41 +
  42 +-i ask_question_to_tender
  43 + -i answer_question_to_tender
  44 +-i ask_question_to_item
  45 + -i answer_question_to_item
  46 +-i ask_question_to_lot
  47 + -i answer_question_to_lot
  48 +-i modify_tender_after_questions
  49 +-i modify_lot_after_questions
  50 +
  51 +-i make_bid_without_related_lot
  52 +-i make_bid_without_parameters
  53 +-i make_bid_by_provider
  54 + -i modify_bid_by_provider
  55 + -i add_doc_to_bid_by_provider
  56 +-i make_bid_by_provider1
  57 +-i bid_view_in_tendering_period
  58 +
  59 +-i add_bid_doc_after_tendering_period_by_provider
  60 +-i modify_bid_doc_after_tendering_period_by_provider
  61 +-i modify_bid_after_tendering_period_by_provider1
  62 +-i cancel_bid_after_tendering_period_by_provider1
  63 +
  64 +-i ask_question_to_tender_after_tendering_period
  65 +-i ask_question_to_item_after_tendering_period
  66 +-i ask_question_to_lot_after_tendering_period
  67 +
  68 +-i open_tender_view
  69 +-i open_modify_tender_in_tendering_period
  70 + -i open_confirm_first_bid
  71 + -i open_confirm_second_bid
  72 +
  73 +-i qualification_add_doc_to_first_award
  74 +-i qualification_approve_first_award
  75 +-i awards_check_by_dfs
  76 +
  77 +-i contract_stand_still
  78 +-i contract_view
  79 +-i modify_contract_invalid_amount
  80 +-i modify_contract_invalid_amountNet_tender_vat_true
  81 +-i modify_contract_amount_net
  82 +-i modify_contract_value
  83 +-i modify_contract
  84 +-i add_doc_to_contract
  85 +-i add_doc_to_contract_title
  86 +-i add_doc_to_contract_content
  87 +-i contract_doc_documentOf
  88 +-i contract_sign
  89 +
  90 +-i find_contract
  91 +-i access_contract
  92 +-i submit_change
  93 +-i view_change
  94 +-i upload_change_document
  95 +-i modify_change
  96 +-i change_contract_amountNet
  97 +-i change_contract_amount
  98 +-i apply_change
  99 +-i add_contract_doc
  100 +-i termination_reasons
  101 +-i amount_paid
  102 +-i change_amount_paid
  103 +-i contract_termination
\ No newline at end of file
... ...
Please register or login to post a comment