Commit b72ed52eca482cd315449cc9f8d83879a126de5e

Authored by AlexDiatlov
1 parent ab6631b1

CS-4922

@@ -11,7 +11,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status @@ -11,7 +11,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
11 11
12 *** Keywords *** 12 *** Keywords ***
13 Можливість оголосити тендер 13 Можливість оголосити тендер
14 - ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact.yaml 14 + ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml
15 ${ARTIFACT}= load_data_from ${file_path} 15 ${ARTIFACT}= load_data_from ${file_path}
16 Log ${ARTIFACT.tender_uaid} 16 Log ${ARTIFACT.tender_uaid}
17 ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} 17 ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS}
@@ -242,6 +242,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status @@ -242,6 +242,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
242 242
243 Можливість створити план закупівлі 243 Можливість створити план закупівлі
244 ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} 244 ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS}
  245 + ${NUMBER_OF_BREAKDOWN}= Convert To Integer ${NUMBER_OF_BREAKDOWN}
245 ${tender_parameters}= Create Dictionary 246 ${tender_parameters}= Create Dictionary
246 ... mode=${MODE} 247 ... mode=${MODE}
247 ... number_of_items=${NUMBER_OF_ITEMS} 248 ... number_of_items=${NUMBER_OF_ITEMS}
@@ -250,6 +251,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status @@ -250,6 +251,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
250 ... moz_integration=${${MOZ_INTEGRATION}} 251 ... moz_integration=${${MOZ_INTEGRATION}}
251 ... road_index=${${ROAD_INDEX}} 252 ... road_index=${${ROAD_INDEX}}
252 ... gmdn_index=${${GMDN_INDEX}} 253 ... gmdn_index=${${GMDN_INDEX}}
  254 + ... number_of_breakdown=${NUMBER_OF_BREAKDOWN}
253 ${DIALOGUE_TYPE}= Get Variable Value ${DIALOGUE_TYPE} 255 ${DIALOGUE_TYPE}= Get Variable Value ${DIALOGUE_TYPE}
254 Run keyword if '${DIALOGUE_TYPE}' != '${None}' Set to dictionary ${tender_parameters} dialogue_type=${DIALOGUE_TYPE} 256 Run keyword if '${DIALOGUE_TYPE}' != '${None}' Set to dictionary ${tender_parameters} dialogue_type=${DIALOGUE_TYPE}
255 ${tender_data}= Підготувати дані для створення плану ${tender_parameters} 257 ${tender_data}= Підготувати дані для створення плану ${tender_parameters}
@@ -378,6 +380,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status @@ -378,6 +380,7 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
378 Перевірити неможливість зміни поля ${field_name} тендера на значення ${field_value} для користувача ${username} 380 Перевірити неможливість зміни поля ${field_name} тендера на значення ${field_value} для користувача ${username}
379 Require Failure ${username} Внести зміни в тендер ${TENDER['TENDER_UAID']} ${field_name} ${field_value} 381 Require Failure ${username} Внести зміни в тендер ${TENDER['TENDER_UAID']} ${field_name} ${field_value}
380 382
  383 +
381 Можливість змінити поле ${field_name} плану на ${field_value} 384 Можливість змінити поле ${field_name} плану на ${field_value}
382 Run As ${tender_owner} Внести зміни в план ${TENDER['TENDER_UAID']} ${field_name} ${field_value} 385 Run As ${tender_owner} Внести зміни в план ${TENDER['TENDER_UAID']} ${field_name} ${field_value}
383 386
@@ -1708,3 +1711,28 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status @@ -1708,3 +1711,28 @@ ${ERROR_PLAN_MESSAGE}= Calling method 'get_plan' failed: ResourceGone: {"status
1708 ${document}= openprocurement_client.Отримати останній документ кваліфікації з типом registerExtract ${username} ${tender_uaid} ${award_id} 1711 ${document}= openprocurement_client.Отримати останній документ кваліфікації з типом registerExtract ${username} ${tender_uaid} ${award_id}
1709 Порівняти об'єкти ${document['title']} edr_identification.yaml 1712 Порівняти об'єкти ${document['title']} edr_identification.yaml
1710 1713
  1714 +##############################################################################################
  1715 +# PLAN
  1716 +##############################################################################################
  1717 +
  1718 +Можливість скасувати план
  1719 + ${cancellation_data}= Підготувати дані про скасування плану
  1720 + Run As ${tender_owner}
  1721 + ... Скасувати план
  1722 + ... ${TENDER['TENDER_UAID']}
  1723 + ... ${cancellation_data}
  1724 + Set To Dictionary ${USERS.users['${tender_owner}']} plan_cancellation_data=${cancellation_data}
  1725 +
  1726 +
  1727 +Можливість перевірити статус плану після публікації тендера
  1728 + ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml
  1729 + ${ARTIFACT}= load_data_from ${file_path}
  1730 + Log ${ARTIFACT.tender_uaid}
  1731 + Звірити статус плану ${tender_owner} ${ARTIFACT.tender_uaid} complete
  1732 +
  1733 +
  1734 +Можливість змінити на ${percent} відсотки бюджет плану
  1735 + ${percent}= Convert To Number ${percent}
  1736 + ${divider}= Convert To Number 0.01
  1737 + ${value}= mult_and_round ${USERS.users['${tender_owner}'].tender_data.data.budget.amount} ${percent} ${divider} precision=${2}
  1738 + Можливість змінити поле budget.amount плану на ${value}
@@ -190,7 +190,7 @@ Library openprocurement_client.utils @@ -190,7 +190,7 @@ Library openprocurement_client.utils
190 190
191 Створити тендер 191 Створити тендер
192 [Arguments] ${username} ${tender_data} 192 [Arguments] ${username} ${tender_data}
193 - ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact.yaml 193 + ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml
194 ${ARTIFACT}= load_data_from ${file_path} 194 ${ARTIFACT}= load_data_from ${file_path}
195 Log ${ARTIFACT.tender_owner_access_token} 195 Log ${ARTIFACT.tender_owner_access_token}
196 Log ${ARTIFACT.tender_id} 196 Log ${ARTIFACT.tender_id}
@@ -1681,6 +1681,36 @@ Library openprocurement_client.utils @@ -1681,6 +1681,36 @@ Library openprocurement_client.utils
1681 ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title} 1681 ${filename}= download_file_from_url ${document.url} ${OUTPUT_DIR}${/}${document.title}
1682 [return] ${filename} 1682 [return] ${filename}
1683 1683
  1684 +
  1685 +Скасувати план
  1686 + [Arguments] ${username} ${tender_uaid} ${cancellation_reason}
  1687 + ${tender}= openprocurement_client.Пошук плану по ідентифікатору ${username} ${tender_uaid}
  1688 + ${data}= Create dictionary cancellation=${cancellation_reason}
  1689 + ${cancellation_data}= Create dictionary data=${data}
  1690 + ${cancellation_data}= munch_dict arg=${cancellation_data}
  1691 + ${cancel_reply}= Call Method ${USERS.users['${username}'].plan_client} patch_plan
  1692 + ... ${tender.data.id}
  1693 + ... ${cancellation_data}
  1694 + ... access_token=${tender.access.token}
  1695 + ${cancellation_id}= Set variable ${cancel_reply.data.id}
  1696 + openprocurement_client.Підтвердити скасування плану ${username} ${tender_uaid} ${cancellation_id}
  1697 +
  1698 +
  1699 +Підтвердити скасування плану
  1700 + [Documentation]
  1701 + ... [Arguments] Username, tender uaid
  1702 + ... Find plan using uaid, get cancellation test_confirmation data and call patch_plan
  1703 + ... [Return] Nothing
  1704 + [Arguments] ${username} ${tender_uaid} ${cancellation_id}
  1705 + ${tender}= openprocurement_client.Пошук плану по ідентифікатору ${username} ${tender_uaid}
  1706 + ${data}= test_confirm_plan_cancel_data
  1707 + Log ${data}
  1708 + ${reply}= Call Method ${USERS.users['${username}'].plan_client} patch_plan
  1709 + ... ${tender.data.id}
  1710 + ... ${data}
  1711 + ... access_token=${tender.access.token}
  1712 + Log ${reply}
  1713 +
1684 ############################################################################## 1714 ##############################################################################
1685 # OpenUA procedure 1715 # OpenUA procedure
1686 ############################################################################## 1716 ##############################################################################
@@ -298,6 +298,7 @@ def test_tender_data_planning(params): @@ -298,6 +298,7 @@ def test_tender_data_planning(params):
298 "currency": "UAH", 298 "currency": "UAH",
299 "amount": round(random.uniform(3000, 99999999999.99), 2), 299 "amount": round(random.uniform(3000, 99999999999.99), 2),
300 "id": str(fake.random_int(min=1, max=99999999999)) + "-" + str(fake.random_int(min=1, max=9)), 300 "id": str(fake.random_int(min=1, max=99999999999)) + "-" + str(fake.random_int(min=1, max=9)),
  301 + "breakdown": []
301 }, 302 },
302 "procuringEntity": { 303 "procuringEntity": {
303 "identifier": { 304 "identifier": {
@@ -349,6 +350,12 @@ def test_tender_data_planning(params): @@ -349,6 +350,12 @@ def test_tender_data_planning(params):
349 data["tender"]["procurementMethod"] = "open" 350 data["tender"]["procurementMethod"] = "open"
350 if params['mode'] in mode_limited: 351 if params['mode'] in mode_limited:
351 data["tender"]["procurementMethod"] = "limited" 352 data["tender"]["procurementMethod"] = "limited"
  353 + if params.get('number_of_breakdown'):
  354 + value_data = breakdown_value_generation(params['number_of_breakdown'], data['budget']['amount'])
  355 + for value in value_data:
  356 + breakdown_element = test_breakdown_data()
  357 + breakdown_element['value']['amount'] = value
  358 + data['budget']['breakdown'].append(breakdown_element)
352 return munchify(data) 359 return munchify(data)
353 360
354 361
@@ -784,7 +791,6 @@ def test_modification_data(item_id, field_name, field_value): @@ -784,7 +791,6 @@ def test_modification_data(item_id, field_name, field_value):
784 return munchify({'data':data}) 791 return munchify({'data':data})
785 792
786 793
787 -  
788 def get_hash(file_contents): 794 def get_hash(file_contents):
789 return ("md5:"+hashlib.md5(file_contents).hexdigest()) 795 return ("md5:"+hashlib.md5(file_contents).hexdigest())
790 796
@@ -970,3 +976,39 @@ def invalid_buyers_data(): @@ -970,3 +976,39 @@ def invalid_buyers_data():
970 "name": "Київський Тестовий Ліцей" 976 "name": "Київський Тестовий Ліцей"
971 } 977 }
972 return munchify(buyers) 978 return munchify(buyers)
  979 +
  980 +
  981 +def test_plan_cancel_data():
  982 + plan_cancel = {
  983 + "cancellation": {
  984 + "reason": "Підстава для скасування",
  985 + "reason_en": "Reason of the cancellation"
  986 + }
  987 + }
  988 + return munchify(plan_cancel)
  989 +
  990 +
  991 +def test_confirm_plan_cancel_data():
  992 + return munchify({
  993 + "data": {
  994 + "cancellation": {
  995 + "status": "active"
  996 + }
  997 + }
  998 + })
  999 +
  1000 +
  1001 +def test_breakdown_data():
  1002 + return munchify({
  1003 + "title": random.choice(["state", "local"]),
  1004 + "description": fake.description(),
  1005 + "value": {
  1006 + "currency": "UAH"
  1007 + }
  1008 + })
  1009 +
  1010 +
  1011 +def breakdown_value_generation(number_of_breakdown, plan_value):
  1012 + value_data = [round(random.uniform(1, plan_value / number_of_breakdown), 2) for _ in range(number_of_breakdown - 1)]
  1013 + value_data.append(plan_value - sum(value_data))
  1014 + return value_data
@@ -28,6 +28,11 @@ Test Suite Teardown @@ -28,6 +28,11 @@ Test Suite Teardown
28 Run Keyword And Ignore Error Створити артефакт 28 Run Keyword And Ignore Error Створити артефакт
29 29
30 30
  31 +Test Suite Teardown Plan
  32 + Close all browsers
  33 + Run Keyword And Ignore Error Створити артефакт план
  34 +
  35 +
31 Set Suite Variable With Default Value 36 Set Suite Variable With Default Value
32 [Arguments] ${suite_var} ${def_value} 37 [Arguments] ${suite_var} ${def_value}
33 ${tmp}= Get Variable Value ${${suite_var}} ${def_value} 38 ${tmp}= Get Variable Value ${${suite_var}} ${def_value}
@@ -188,6 +193,23 @@ Get Broker Property By Username @@ -188,6 +193,23 @@ Get Broker Property By Username
188 log_object_data ${artifact} file_name=artifact update=${True} artifact=${True} 193 log_object_data ${artifact} file_name=artifact update=${True} artifact=${True}
189 194
190 195
  196 +Створити артефакт план
  197 + ${artifact}= Create Dictionary
  198 + ... api_version=${API_VERSION}
  199 + ... tender_uaid=${TENDER['TENDER_UAID']}
  200 + ... last_modification_date=${TENDER['LAST_MODIFICATION_DATE']}
  201 + ... mode=${MODE}
  202 + Run Keyword And Ignore Error Set To Dictionary ${artifact}
  203 + ... tender_owner=${USERS.users['${tender_owner}'].broker}
  204 + ... access_token=${USERS.users['${tender_owner}'].access_token}
  205 + ... tender_id=${USERS.users['${tender_owner}'].tender_data.data.id}
  206 + ... tender_owner_access_token=${USERS.users['${tender_owner}'].access_token}
  207 + Run Keyword And Ignore Error Set To Dictionary ${artifact}
  208 + ... tender_file_properties=${USERS.users['${tender_owner}'].tender_document.file_properties}
  209 + Log ${artifact}
  210 + log_object_data ${artifact} file_name=artifact_plan update=${True} artifact=${True}
  211 +
  212 +
191 Завантажити дані про тендер 213 Завантажити дані про тендер
192 ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact.yaml 214 ${file_path}= Get Variable Value ${ARTIFACT_FILE} artifact.yaml
193 ${ARTIFACT}= load_data_from ${file_path} 215 ${ARTIFACT}= load_data_from ${file_path}
@@ -336,6 +358,19 @@ Get Broker Property By Username @@ -336,6 +358,19 @@ Get Broker Property By Username
336 ... document=${document} 358 ... document=${document}
337 ... description=${new_description} 359 ... description=${new_description}
338 ${cancellation_data}= munchify ${cancellation_data} 360 ${cancellation_data}= munchify ${cancellation_data}
  361 + Log ${cancellation_data}
  362 + [Return] ${cancellation_data}
  363 +
  364 +
  365 +Підготувати дані про скасування плану
  366 + ${cancellation_reason}= create_fake_sentence
  367 + ${cancellation_reason_en}= create_fake_sentence
  368 + ${cancellation_data}= Create Dictionary
  369 + ... reason=${cancellation_reason}
  370 + ... reason_en=${cancellation_reason_en}
  371 + ${cancellation_data}= munchify ${cancellation_data}
  372 + #${cancellation_data}= test_plan_cancel_data
  373 + Log ${cancellation_data}
339 [Return] ${cancellation_data} 374 [Return] ${cancellation_data}
340 375
341 376
@@ -951,6 +986,12 @@ Require Failure @@ -951,6 +986,12 @@ Require Failure
951 [Arguments] ${username} ${tender_uaid} ${left} 986 [Arguments] ${username} ${tender_uaid} ${left}
952 ${right}= Run as ${username} Отримати інформацію із тендера ${tender_uaid} status 987 ${right}= Run as ${username} Отримати інформацію із тендера ${tender_uaid} status
953 Порівняти об'єкти ${left} ${right} 988 Порівняти об'єкти ${left} ${right}
  989 + Порівняти об'єкти ${left} ${right}
  990 +
  991 +
  992 +Звірити статус плану
  993 + [Arguments] ${username} ${tender_uaid} ${left}
  994 + ${right}= Run as ${username} Отримати інформацію із плану ${tender_uaid} status
954 995
955 996
956 Звірити статус об'єкта моніторингу 997 Звірити статус об'єкта моніторингу
@@ -263,6 +263,15 @@ ${PLAN_TENDER} ${True} @@ -263,6 +263,15 @@ ${PLAN_TENDER} ${True}
263 Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації план-тендер ${4} 263 Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації план-тендер ${4}
264 264
265 265
  266 +Перевірити статус плану - завершено
  267 + [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних плану
  268 + ... tender_owner
  269 + ... ${USERS.users['${tender_owner}'].broker}
  270 + ... plan_status_complete_view
  271 + ... critical
  272 + Можливість перевірити статус плану після публікації тендера
  273 +
  274 +
266 Можливість знайти тендер по ідентифікатору 275 Можливість знайти тендер по ідентифікатору
267 [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера 276 [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера
268 ... viewer tender_owner provider provider1 277 ... viewer tender_owner provider provider1
1 *** Settings *** 1 *** Settings ***
2 Resource base_keywords.robot 2 Resource base_keywords.robot
3 Suite Setup Test Suite Setup 3 Suite Setup Test Suite Setup
4 -Suite Teardown Test Suite Teardown 4 +Suite Teardown Test Suite Teardown Plan
5 5
6 *** Variables *** 6 *** Variables ***
7 ${RESOURCE} plans 7 ${RESOURCE} plans
@@ -14,6 +14,7 @@ ${ITEM_MEAT} ${False} @@ -14,6 +14,7 @@ ${ITEM_MEAT} ${False}
14 ${MOZ_INTEGRATION} ${False} 14 ${MOZ_INTEGRATION} ${False}
15 ${ROAD_INDEX} ${False} 15 ${ROAD_INDEX} ${False}
16 ${GMDN_INDEX} ${False} 16 ${GMDN_INDEX} ${False}
  17 +${NUMBER_OF_BREAKDOWN} ${2}
17 18
18 *** Test Cases *** 19 *** Test Cases ***
19 Неможливість створити план закупівлі з двома buyers 20 Неможливість створити план закупівлі з двома buyers
@@ -55,6 +56,16 @@ ${GMDN_INDEX} ${False} @@ -55,6 +56,16 @@ ${GMDN_INDEX} ${False}
55 Можливість знайти план по ідентифікатору 56 Можливість знайти план по ідентифікатору
56 57
57 58
  59 +Відображення статусу плану - заплановано
  60 + [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних плану
  61 + ... tender_owner
  62 + ... ${USERS.users['${tender_owner}'].broker}
  63 + ... status_sheduled_view
  64 + ... critical
  65 + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
  66 + Звірити статус плану ${tender_owner} ${TENDER['TENDER_UAID']} scheduled
  67 +
  68 +
58 Відображення типу запланованого тендера 69 Відображення типу запланованого тендера
59 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану 70 [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних плану
60 ... viewer 71 ... viewer
@@ -265,8 +276,7 @@ ${GMDN_INDEX} ${False} @@ -265,8 +276,7 @@ ${GMDN_INDEX} ${False}
265 ... critical 276 ... critical
266 [Setup] Дочекатись синхронізації з майданчиком ${tender_owner} 277 [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
267 [Teardown] Оновити LAST_MODIFICATION_DATE 278 [Teardown] Оновити LAST_MODIFICATION_DATE
268 - ${new_amount}= create_fake_value_amount  
269 - Можливість змінити поле budget.amount плану на ${new_amount} 279 + Можливість змінити на 150 відсотки бюджет плану
270 280
271 281
272 Можливість змінити кінцеву дату доставки 282 Можливість змінити кінцеву дату доставки
@@ -337,3 +347,22 @@ ${GMDN_INDEX} ${False} @@ -337,3 +347,22 @@ ${GMDN_INDEX} ${False}
337 [Teardown] Оновити LAST_MODIFICATION_DATE 347 [Teardown] Оновити LAST_MODIFICATION_DATE
338 ${new_period}= create_fake_period days=${1460} 348 ${new_period}= create_fake_period days=${1460}
339 Можливість змінити поле budget.period плану на ${new_period} 349 Можливість змінити поле budget.period плану на ${new_period}
  350 +
  351 +
  352 +Можливість скасувати план
  353 + [Tags] ${USERS.users['${tender_owner}'].broker}: Скасування плану
  354 + ... tender_owner
  355 + ... ${USERS.users['${tender_owner}'].broker}
  356 + ... plan_cancellation
  357 + [Teardown] Оновити LAST_MODIFICATION_DATE
  358 + Можливість скасувати план
  359 +
  360 +
  361 +Відображення статусу плану - скасовано
  362 + [Tags] ${USERS.users['${tender_owner}'].broker}: Відображення основних даних плану
  363 + ... tender_owner
  364 + ... ${USERS.users['${tender_owner}'].broker}
  365 + ... status_cancelled_view
  366 + ... critical
  367 + [Setup] Дочекатись синхронізації з майданчиком ${tender_owner}
  368 + Звірити статус плану ${tender_owner} ${TENDER['TENDER_UAID']} cancelled
@@ -78,7 +78,9 @@ from .initial_data import ( @@ -78,7 +78,9 @@ from .initial_data import (
78 invalid_INN_data, 78 invalid_INN_data,
79 invalid_cost_data, 79 invalid_cost_data,
80 invalid_gmdn_data, 80 invalid_gmdn_data,
81 - invalid_buyers_data 81 + invalid_buyers_data,
  82 + test_plan_cancel_data,
  83 + test_confirm_plan_cancel_data
82 ) 84 )
83 from barbecue import chef 85 from barbecue import chef
84 from restkit import request 86 from restkit import request
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 9
10 10
11 -i create_tender 11 -i create_tender
  12 +-i plan_status_complete_view
12 -i find_tender 13 -i find_tender
13 -i tender_view 14 -i tender_view
14 -i tender_view_milestone 15 -i tender_view_milestone
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 9
10 10
11 -i create_tender 11 -i create_tender
  12 +-i plan_status_complete_view
12 -i find_tender 13 -i find_tender
13 -i tender_view 14 -i tender_view
14 -i tender_view_milestone 15 -i tender_view_milestone
  1 +-v MODE:negotiation
  2 +
  3 +-v NUMBER_OF_ITEMS:2
  4 +-v NUMBER_OF_LOTS:0
  5 +
  6 +-i create_tender
  7 +-i add_tender_doc
  8 +-i add_award
  9 +-i find_tender
  10 +-i tender_view_milestone
  11 +-i tender_view
  12 +-i add_tender_doc
  13 +-i award_view
  14 +-i add_contract
  15 +-i modify_contract_amount_net
  16 +-i modify_contract_value
  17 +
  1 +-v MODE:negotiation
  2 +
  3 +-v NUMBER_OF_ITEMS:2
  4 +-v NUMBER_OF_LOTS:0
  5 +
  6 +-i create_tender
  7 +-i add_tender_doc
  8 +-i add_award
  9 +-i find_tender
  10 +-i tender_view_title
  11 +-i tender_view
  12 +-i tender_view_description
  13 +-i tender_view_cause_description
  14 +-i tender_view_cause
  15 +-i tender_view_milestone
  16 +-i tender_view_contactPoint_url
  17 +-i tender_view_unit_code
  18 +-i tender_view_delivery_address
  19 +-i add_tender_doc
  20 +-i award_view
  21 +-i add_contract
  22 +-i modify_contract_amount_net
  23 +-i modify_contract_value
  24 +
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
8 8
9 -i create_plan 9 -i create_plan
10 -i find_plan 10 -i find_plan
  11 +-i status_sheduled_view
11 12
12 -i plan_view 13 -i plan_view
13 14
Please register or login to post a comment