Commit db621957234dbc547c366ca3fa0505566671da81

Authored by Playtenders
1 parent 4d58a5c2

add question\answer create claim add bid

... ... @@ -140,3 +140,111 @@ Resource playtender_tende
140 140 open tender page by uaid ${tender_uaid}
141 141 ${value} = get tender field value by name ${field_name}
142 142 [Return] ${value}
  143 +
  144 +Внести зміни в тендер
  145 + [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue}
  146 + [Documentation] Змінити значення поля fieldname на fieldvalue для плана із зазначеним plan_uaid.
  147 +
  148 + ${tender_data} = generate dictionary from field path and value ${fieldname} ${fieldvalue}
  149 + open tender form by uaid ${tender_uaid}
  150 + fill tender form ${tender_data}
  151 + save tender form and wait synchronization
  152 +
  153 +Додати предмет закупівлі
  154 + [Arguments] ${username} ${tender_uaid} ${item_data}
  155 +
  156 + open tender form by uaid ${tender_uaid}
  157 + ${items} = create list ${item_data}
  158 + fill tender form items ${items}
  159 + save tender form and wait synchronization
  160 +
  161 +Завантажити документ
  162 + [Arguments] ${username} ${filepath} ${tender_uaid}
  163 + [Documentation] Завантажити документ, який знаходиться по шляху filepath, до тендера tender_uaid.
  164 +
  165 + open tender form by uaid ${tender_uaid}
  166 + add document in tender ${filepath}
  167 + save tender form and wait synchronization
  168 +
  169 +Завантажити документ в лот
  170 + [Arguments] ${username} ${filepath} ${tender_uaid} ${lot_id}
  171 + [Documentation] Завантажити документ, який знаходиться по шляху filepath, до лоту з lot_id в описі для тендера tender_uaid.
  172 +
  173 + open tender form by uaid ${tender_uaid}
  174 + add document in lot ${filepath} ${lot_id}
  175 + save tender form and wait synchronization
  176 +
  177 +Відповісти на запитання
  178 + [Arguments] ${username} ${tender_uaid} ${answer_data} ${question_id}
  179 + [Documentation] Дати відповідь answer_data на запитання з question_id в описі для тендера tender_uaid.
  180 +
  181 + open tender form by uaid ${tender_uaid}
  182 + answer question ${answer_data} ${question_id}
  183 +# save tender form and wait synchronization
  184 +
  185 +Задати запитання на предмет
  186 + [Arguments] ${username} ${tender_uaid} ${item_id} ${question}
  187 + [Documentation] Створити запитання з даними question до предмету з item_id в описі для тендера tender_uaid.
  188 +
  189 + Задати запитання ${username} ${tender_uaid} item ${item_id} ${question}
  190 +
  191 +Задати запитання на лот
  192 + [Arguments] ${username} ${tender_uaid} ${lot_id } ${question}
  193 + [Documentation] Створити запитання з даними question до лоту з lot_id в описі для тендера tender_uaid.
  194 +
  195 + Задати запитання ${username} ${tender_uaid} lot ${lot_id} ${question}
  196 +
  197 +Задати запитання на тендер
  198 + [Arguments] ${username} ${tender_uaid} ${question}
  199 + [Documentation] Створити запитання з даними question для тендера tender_uaid.
  200 +
  201 + Задати запитання ${username} ${tender_uaid} tender null ${question}
  202 +
  203 +Створити вимогу про виправлення умов закупівлі
  204 + [Arguments] ${username} ${tender_uaid} ${claim} ${doc_name}
  205 + [Documentation] Створити запитання з даними question для тендера tender_uaid.
  206 + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} tender null ${claim} ${doc_name}
  207 +
  208 +Створити чернетку вимоги про виправлення умов закупівлі
  209 + [Arguments] ${username} ${tender_uaid} ${claim}
  210 + [Documentation] Створює вимогу claim про виправлення умов закупівлі у статусі claim для тендера tender_uaid. Можна створити вимогу як з документом, який знаходиться за шляхом document, так і без нього.
  211 + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} tender null ${claim} null
  212 +
  213 +Створити вимогу про виправлення умов лоту
  214 + [Arguments] ${username} ${tender_uaid} ${claim} ${lot_id} ${doc_name}
  215 + [Documentation] Створює вимогу claim про виправлення умов лоту у статусі draft для тендера tender_uaid.
  216 + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} lot ${lot_id} ${claim} ${doc_name}
  217 +
  218 +Створити чернетку вимоги про виправлення умов лоту
  219 + [Arguments] ${username} ${tender_uaid} ${claim} ${lot_id}
  220 + [Documentation] Створює вимогу claim про виправлення умов закупівлі у статусі draft для тендера tender_uaid.
  221 + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} lot ${lot_id} ${claim} null
  222 +
  223 +Створити вимогу про виправлення визначення переможця
  224 + [Arguments] ${username} ${tender_uaid} ${claim} ${proposal_id} ${doc_name}
  225 + [Documentation] Створює вимогу claim про виправлення визначення переможця під номером award_index в статусі claim для тендера tender_uaid. Можна створити вимогу як з документом, який знаходиться за шляхом document, так і без нього.
  226 + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} winner ${proposal_id} ${claim} ${doc_name}
  227 +
  228 +Створити чернетку вимоги про виправлення визначення переможця
  229 + [Arguments] ${username} ${tender_uaid} ${claim} ${proposal_id}
  230 + [Documentation] Створює вимогу claim про виправлення визначення переможця під номером award_index в статусі draft для тендера tender_uaid.
  231 + Run Keyword And Return Створити вимогу ${username} ${tender_uaid} winner ${proposal_id} ${claim} null
  232 +
  233 +Подати цінову пропозицію
  234 + [Arguments] ${username} ${tender_uaid} ${bid} ${lots_ids} ${features_ids}
  235 + [Documentation] Подати цінову пропозицію bid для тендера tender_uaid на лоти lots_ids (якщо lots_ids != None) з неціновими показниками features_ids (якщо features_ids != None).
  236 +
  237 + open tender form by uaid ${tender_uaid}
  238 + fill bid form ${tender_uaid} ${bid} ${lots_ids} ${features_ids}
  239 + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator}
  240 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  241 +
  242 +Змінити цінову пропозицію
  243 + [Arguments] ${username} ${tender_uaid} ${fieldname} ${fieldvalue}
  244 + [Documentation] Змінити поле fieldname на fieldvalue цінової пропозиції користувача username для тендера tender_uaid.
  245 +
  246 + open tender form by uaid ${tender_uaid}
  247 + fill bid form edit ${fieldname} ${fieldvalue}
  248 + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator}
  249 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  250 +
... ...
... ... @@ -61,7 +61,7 @@ fill item form in opened popup
61 61 ${description_ru} = get from dictionary by keys ${data} description_ru
62 62 run keyword if condition is not none ${description_ru} input text to exist visible input ${item_form_popup_description_ru_input_locator} ${description_ru}
63 63 ${description_en} = get from dictionary by keys ${data} description_en
64   - run keyword if condition is not none ${description_en} input text to exist visible input ${item_form_popup_description_ru_input_locator} ${description_en}
  64 + run keyword if condition is not none ${description_en} input text to exist visible input ${item_form_popup_description_en_input_locator} ${description_en}
65 65 ${quantity} = get from dictionary by keys ${data} quantity
66 66 run keyword if condition is not none ${quantity} input number to visible input ${item_form_popup_quantity_input_locator} ${quantity}
67 67 ${unit} = get from dictionary by keys ${data} unit name
... ... @@ -210,10 +210,15 @@ select classification by array of code attributes
210 210 ${exclude_schemes_is_none}= get variable is none ${exclude_schemes}
211 211
212 212 open popup by btn locator ${btn_locator} ${classification_popup_opened_content_locator}
  213 + Capture Page Screenshot
213 214 :FOR ${code_attributes} IN @{code_attributes_array}
214 215 \ ${disabled} = set variable if ${include_schemes_is_none} == ${False} and '${code_attributes['scheme']}' not in ${include_schemes} ${True} ${False}
  216 + \ Capture Page Screenshot
215 217 \ ${disabled} = set variable if ${exclude_schemes_is_none} == ${False} and '${code_attributes['scheme']}' in ${exclude_schemes} ${True} ${disabled}
  218 + \ Capture Page Screenshot
216 219 \ run keyword if ${disabled} == ${False} __private__select_classification_code_in_opened_popup ${code_attributes['id']} ${code_attributes['scheme']}
  220 + \ Capture Page Screenshot
  221 + Capture Page Screenshot
217 222 submit current visible popup
218 223
219 224 open site page and wait content element
... ... @@ -338,7 +343,6 @@ Click and wait for the search
338 343 ... wanted_locator: What are we waiting for
339 344 ... timeout: Timeout
340 345 Press key ${click_locator} \\13
341   -# Sleep 3
342 346 Wait Until Page Contains Element ${wanted_locator} ${timeout}
343 347 ########################################################################################################################
344 348 ################################################### PRIVATE KEYWORDS ###################################################
... ... @@ -402,6 +406,7 @@ __private__select_classification_code_in_opened_popup
402 406 run keyword if ${scheme_tab_exists} == ${True} click visible element ${scheme_tab_locator}
403 407 run keyword if ${scheme_tab_exists} == ${True} wait until tab content is visible ${scheme_tab_locator}
404 408 ... ELSE __private__log Classification scheme tab ${scheme} does not exist
  409 + wait until popup is visible
405 410 # seraching code
406 411 input text to visible input and press enter ${classification_popup_search_input_locator} ${code}
407 412 ${code} = convert to string ${code}
... ...
... ... @@ -266,3 +266,15 @@ def prepare_tender_data(data):
266 266 del data['milestones']
267 267
268 268 return data
  269 +
  270 +def split_agreementDuration(str, type):
  271 + if type in 'year':
  272 + year_temp = str.split('Y',1)
  273 + value = year_temp[0].split('P',1)
  274 + elif type in 'month':
  275 + month_temp = str.split('M',1)
  276 + value = month_temp[0].split('Y',1)
  277 + else:
  278 + day_temp = str.split('D',1)
  279 + value = day_temp[0].split('M',1)
  280 + return value[1]
\ No newline at end of file
... ...
... ... @@ -9,11 +9,36 @@ open new tender form
9 9
10 10 open page and wait element by locator ${broker_baseurl}/tender/create ${tender_form_locator}
11 11
  12 +update tender queue
  13 + [Documentation] запускає оновлення планів з ЦБД і додає їх в чергу, тобто синхронізація може відбутися не відразу
  14 + ... поточна сторіка повертається
  15 +
  16 + ${current_url} = get location
  17 + go to ${broker_baseurl}/utils/queue-tender-update
  18 + go to ${current_url}
  19 +
  20 +open tender form by uaid
  21 + [Arguments] ${tender_uaid}
  22 + [Documentation] відкриття сторінки редагування плану
  23 +
  24 + open tender page by uaid ${tender_uaid}
  25 + click visible element and wait until page contains element ${tender_edit_btn_locator} ${tender_form_locator}
  26 +
12 27 open tender page by uaid
13 28 [Arguments] ${uaid}
14 29 [Documentation] відкриває сторінку з тендером
15 30
16   - open page and wait element by locator ${broker_baseurl}/tender/${uaid} ${tender_view_checker_element_locator}
  31 +# open page and wait element by locator ${broker_baseurl}/tender/${uaid} ${tender_view_checker_element_locator}
  32 + open site page and wait content element ${broker_baseurl}/tender/${uaid}
  33 + ${is_tender_found} = get is element exist ${tender_view_checker_element_locator}
  34 + return from keyword if ${is_tender_found} == ${True}
  35 + ${is_tender_not_found} = get is 404 page
  36 + ${is_needed_to_update_and_wait_sync} = set variable if ${is_test_role_owner} == ${False} and ${is_tender_not_found} ${True} ${False}
  37 + run keyword if ${is_needed_to_update_and_wait_sync} update tender queue
  38 + run keyword if ${is_needed_to_update_and_wait_sync} wait until 404 page disappears
  39 + ${is_tender_found} = get is element exist ${tender_view_checker_element_locator}
  40 + run keyword if ${is_tender_found} == ${False} fail Opening tender page by uaid fails.
  41 +
17 42
18 43 fill tender form
19 44 [Arguments] ${data}
... ... @@ -37,7 +62,7 @@ fill tender general info
37 62
38 63 ${procurement_method_type} = get from dictionary by keys ${data} procurementMethodType
39 64 run keyword if condition is not none ${procurement_method_type} select from visible list by value ${tender_form_procurement_method_type_input_locator} ${procurement_method_type}
40   - wait until page does not contain element ${button_refresh_element}
  65 + wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
41 66
42 67 ${lots} = get from dictionary by keys ${data} lots
43 68 run keyword if condition is not none ${lots} Run Keyword And Ignore Error Click Element ${tender_multilot_locator}
... ... @@ -84,6 +109,18 @@ fill tender general info
84 109 run keyword if condition is not none ${funding_kind} select from visible list by value ${tender_form_general_funding_kind_input_locator} ${funding_kind}
85 110 ${nbu_discount_rate} = get from dictionary by keys ${data} NBUdiscountRate
86 111 run keyword if condition is not none ${nbu_discount_rate} input number to exist visible input ${tender_form_general_nbu_discount_rate_input_locator} ${nbu_discount_rate}
  112 +#closeframework
  113 + ${max_awards_count} = get from dictionary by keys ${data} maxAwardsCount
  114 + run keyword if condition is not none ${max_awards_count} input text to exist visible input ${tender_form_general_max_awards_count_input_locator} ${max_awards_count}
  115 + ${agreement_duration_years} = get from dictionary by keys ${data} agreementDuration
  116 + ${agreement_duration_years1}= Run keyword If '${agreement_duration_years}' != '${None}' split_agreementDuration ${agreement_duration_years} year
  117 + run keyword if condition is not none ${agreement_duration_years} select from visible list by value ${tender_form_general_agreement_duration_years_input_locator} ${agreement_duration_years1}
  118 + ${agreement_duration_months} = get from dictionary by keys ${data} agreementDuration
  119 + ${agreement_duration_months1}= Run keyword If '${agreement_duration_months}' != '${None}' split_agreementDuration ${agreement_duration_months} month
  120 + run keyword if condition is not none ${agreement_duration_months} select from visible list by value ${tender_form_general_agreement_duration_months_input_locator} ${agreement_duration_months1}
  121 + ${agreement_duration_days} = get from dictionary by keys ${data} agreementDuration
  122 + ${agreement_duration_days1}= Run keyword If '${agreement_duration_days}' != '${None}' split_agreementDuration ${agreement_duration_years} day
  123 + run keyword if condition is not none ${agreement_duration_days} select from visible list by value ${tender_form_general_agreement_duration_days_input_locator} ${agreement_duration_days1}
87 124 submit current visible popup
88 125
89 126 fill tender form items
... ... @@ -125,7 +162,7 @@ fill tender form milestones
125 162 wait until popup is visible
126 163 :FOR ${milestone_attributes} IN @{milestone_attributes_array}
127 164 \ click visible element ${milestone_form_popup_add_btn_locator}
128   - \ wait until page does not contain element ${button_refresh_element}
  165 + \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
129 166 \ fill milestone form in opened popup ${milestone_attributes}
130 167 submit current visible popup
131 168
... ... @@ -154,7 +191,7 @@ fill tender form features
154 191 wait until popup is visible
155 192 :FOR ${feature_attributes} IN @{feature_attributes_array}
156 193 \ click visible element ${tender_form_features_panel_edit_btn_locator}
157   - \ wait until page does not contain element ${button_refresh_element}
  194 + \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
158 195 \ fill feature form in opened popup ${feature_attributes}
159 196 submit current visible popup
160 197
... ... @@ -166,11 +203,16 @@ fill feature form in opened popup
166 203 run keyword if condition is not none ${title} input text to exist visible input ${feature_form_popup_title_input_locator} ${title}
167 204 ${description} = get from dictionary by keys ${data} description
168 205 run keyword if condition is not none ${description} input text to exist visible input ${feature_form_popup_description_input_locator} ${description}
  206 + ${title_en} = get from dictionary by keys ${data} title_en
  207 + run keyword if condition is not none ${title_en} input text to exist visible input ${feature_form_popup_title_en_input_locator} ${title_en}
  208 + ${description_en} = get from dictionary by keys ${data} description
  209 + run keyword if condition is not none ${description_en} input text to exist visible input ${feature_form_popup_description_en_input_locator} ${description_en}
169 210 ${options} = Get From Dictionary ${data} enum
170 211 ${count} = Get Length ${options}
171 212 ${ex}= Evaluate ${count} - 1
172 213 : FOR ${INDEX} IN RANGE 0 ${count}
173 214 \ run keyword if condition is not none ${options[${INDEX}].title} input text to exist visible input ${feature_form_popup_enum_title_input_locator} ${options[${INDEX}].title}
  215 +# \ run keyword if condition is not none ${options[${INDEX}].title_en} input text to exist visible input ${feature_form_popup_enum_title_en_input_locator} ${options[${INDEX}].title_en}
174 216 \ ${value} = convert_float_to_string ${options[${INDEX}].value}
175 217 \ ${value} = Convert To Number ${value}
176 218 \ ${value} = multiply_hundred ${value}
... ... @@ -178,7 +220,7 @@ fill feature form in opened popup
178 220 \ run keyword if condition is not none ${options[${INDEX}].value} input text to exist visible input ${feature_form_popup_enum_value_input_locator} ${value}
179 221 \ Continue For Loop If '${INDEX}' == '${ex}'
180 222 \ Run Keyword If ${count} != 1 click visible element ${feature_form_popup_add-enums_btn_locator}
181   - \ wait until page does not contain element ${button_refresh_element}
  223 + \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
182 224
183 225 fill tender form lots
184 226 [Arguments] ${lot_attributes_array}
... ... @@ -228,8 +270,8 @@ fill tender required documents
228 270
229 271 ${file_path} ${file_name} ${file_content} = create_fake_doc
230 272 click visible element ${tender_form_general_panel_add_document_btn_locator}
231   - choose file ${add_file_to_form} ${file_path}
232   - wait until page does not contain element ${button_refresh_element}
  273 + choose file ${add_file_to_form_locator} ${file_path}
  274 + wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
233 275 submit current visible popup
234 276
235 277 open tender search form
... ... @@ -239,5 +281,182 @@ open tender search form
239 281
240 282 get tender field value by name
241 283 [Arguments] ${key}
242   - [Documentation] Отримати інформацію із тендера, користуючись ідентіфікатором плану та назвою поля ${key}.
  284 + [Documentation] Отримати інформацію із тендера, користуючись ідентіфікатором тендеру та назвою поля ${key}.
  285 +
  286 +
  287 +save tender form and wait synchronization
  288 + [Documentation] натискає кнопку "Зберегти" і чекає синхронізації тендеру
  289 +
  290 + submit form and check result ${tender_form_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator}
  291 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  292 +
  293 +add document in tender
  294 + [Arguments] ${filepath}
  295 + [Documentation] Завантажити документ, який знаходиться по шляху filepath.
  296 +
  297 + click visible element ${tender_form_general_panel_edit_add_document_btn_locator}
  298 + choose file ${add_file_to_form_locator} ${filepath}
  299 + wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
  300 + submit current visible popup
  301 +
  302 +add document in lot
  303 + [Arguments] ${filepath} ${lot_id}
  304 + [Documentation] Завантажити в лот (з ідентіфікатором ${lot_id}) документ, який знаходиться по шляху filepath.
  305 +
  306 + ${open_form_add_doc_lot_btn_locator} = replace string ${tender_form_lot_panel_add_document_btn_locator_tpl} %lot_id% ${lot_id}
  307 + click visible element ${open_form_add_doc_lot_btn_locator}
  308 + choose file ${add_file_to_form_locator} ${filepath}
  309 + wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
  310 + submit current visible popup
  311 +
  312 +Задати запитання
  313 + [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${question}
  314 + [Documentation] Створити запитання з question в описі для тендера tender_uaid.
  315 +# run keyword and ignore error save tender form and wait synchronization
  316 + click visible element ${question_form_create_question_btn_locator}
  317 + wait until popup is visible
  318 + input text to exist visible input ${question_form_open_form_answer_input_locator} ${answer_data.data.answer}
  319 + Run Keyword If '${type}' == 'tender' Select From List By Value ${question_form_create_questionform_related_of_input_locator} Закупівля
  320 + Run Keyword If '${type}' == 'lot' Select From List By Value ${question_form_create_questionform_related_of_input_locator} Лот
  321 + Run Keyword If '${type}' == 'lot' Click Element ${question_form_create_questionform_related_lot_input_locator}
  322 + ${question_form_create_questionform_related_lot_input_locator} = Run Keyword If '${type}' == 'lot' replace string ${question_form_create_questionform_related_lot_input_locator_tpl} %type_id% ${type_id}
  323 + Run Keyword If '${type}' == 'lot' Click Element ${question_form_create_questionform_related_lot_input_locator}
  324 + Run Keyword If '${type}' == 'item' Select From List By Value ${question_form_create_questionform_related_of_input_locator} Предмет закупівлі
  325 + Run Keyword If '${type}' == 'item' Click Element ${question_form_create_questionform_related_item_input_locator}
  326 + ${question_form_create_questionform_related_item_input_locator} = Run Keyword If '${type}' == 'item' replace string ${question_form_create_questionform_related_item_input_locator_tpl} %type_id% ${type_id}
  327 + Run Keyword If '${type}' == 'item' Click Element ${question_questionform_related_item_input_locator}
  328 + input text to exist visible input ${question_form_create_questionform_title_input_locator} ${question.data.title}
  329 + input text to exist visible input ${question_form_create_questionform_description_input_locator} ${question.data.description}
  330 + click visible element ${question_form_answer_submit_btn_locator}
  331 + wait until page does not contain element with reloading ${tender_sync_element_locator}
  332 +
  333 +answer question
  334 + [Arguments] ${answer_data} ${question_id}
  335 + [Documentation] Дати відповідь answer_data на запитання з question_id в описі для тендера tender_uaid.
  336 +
  337 + run keyword and ignore error save tender form and wait synchronization
  338 + click visible element ${question_form_open_btn_locator}
  339 + ${question_open_form_answer_locator} = replace string ${question_open_form_answer_btn_locator_tpl} %title% ${question_id}
  340 + wait until page contains element with reloading ${question_open_form_answer_locator}
  341 + ${question_form_open_form_answer_btn_locator} = replace string ${question_form_open_form_answer_btn_locator_tpl} %title% ${question_id}
  342 + click visible element ${question_form_open_form_answer_btn_locator}
  343 + wait until popup is visible
  344 + input text to exist visible input ${question_form_open_form_answer_input_locator} ${answer_data.data.answer}
  345 +# click visible element ${question_form_answer_submit_btn_locator}
  346 + submit form and check result ${question_form_answer_submit_btn_locator} ${question_form_submit_success_msg} ${tender_created_checker_element_locator}
  347 +
  348 +Створити вимогу
  349 + [Arguments] ${username} ${tender_uaid} ${type} ${type_id} ${claim} ${doc_name}
  350 + [Documentation] Створити вимогу з claim в описі для тендера tender_uaid.
  351 +
  352 + click visible element ${claim_form_open_btn_locator}
  353 + wait until popup is visible
  354 + input text to exist visible input ${claim_form_complaintform_title_input_locator} ${claim.data.title}
  355 + input text to exist visible input ${claim_form_complaintform_description_input_locator} ${claim.data.description}
  356 + Run Keyword And Ignore Error Run Keyword If '${type}' == 'tender' Select From List By Label ${claim_form_complaintform_related_of_input_locator} Закупівля
  357 + Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Select From List By Label ${claim_form_complaintform_related_of_input_locator} Лот
  358 + Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Click Element ${claim_form_complaintform_related_lot_input_locator}
  359 + ${claim_form_complaintform_related_lot_select_locator} = Run Keyword If '${type}' == 'lot' replace string ${claim_form_complaintform_related_lot_input_locator_tpl} %type_id% ${type_id}
  360 + Run Keyword And Ignore Error Run Keyword If '${type}' == 'lot' Click Element ${claim_form_complaintform_related_lot_select_locator}
  361 + Run Keyword And Ignore Error Select From List By Label ${claim_form_complaintform_complaintform_type_input_locator} Вимога
  362 + Run Keyword If '${doc_name}' != 'null' click visible element ${claim_form_complaintform_document_btn_locator}
  363 + Run Keyword If '${doc_name}' != 'null' choose file ${add_file_to_form_locator} ${doc_name}
  364 + Run Keyword If '${doc_name}' != 'null' wait until page does not contain element ${popup_dynamic_form_loading_element_locator}
  365 +# Run Keyword If '${doc_name}' != 'null' submit current visible popup
  366 + submit form and check result ${claim_form_complaintform_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator}
  367 +# Функция ожидания claim_uaid_text_locator соответствующей вимоги
  368 + click visible element ${claim_form_open_btn_locator}
  369 + ${return_value}= Get Element Attribute ${claim_uaid_text_locator}
  370 + ${return_value}= Convert To String ${return_value}
  371 + [return] ${return_value}
  372 +
  373 +
  374 +fill bid form
  375 + [Arguments] ${tender_uaid} ${bid} ${lots_ids} ${features_ids}
  376 + [Documentation] Подати цінову пропозицію bid для тендера tender_uaid на лоти lots_ids (якщо lots_ids != None) з неціновими показниками features_ids (якщо features_ids != None).
  377 +
  378 + click visible element ${bid_form_open_btn_locator}
  379 + wait until popup is visible
  380 + ${value} = get from dictionary by keys ${bid} value amount
  381 + ${amount} = run keyword if condition is not none ${value} convert_float_to_string ${bid.data.value.amount}
  382 + run keyword if condition is not none ${value} input number to exist visible input ${bid_form_value_amount_input_locator} ${amount}
  383 + ${value_yearly_payments_percentage} = get from dictionary by keys ${bid} value yearlyPaymentsPercentage
  384 + ${yearly_payments_percentage} = run keyword if condition is not none ${value_yearly_payments_percentage} convert_float_to_string ${bid.data.value.yearlyPaymentsPercentage}
  385 + run keyword if condition is not none ${value} input number5 to exist visible input ${bid_form_value_yearly_payments_percentage_input_locator} ${yearly_payments_percentage}
  386 + ${contract_duration_years} = get from dictionary by keys ${bid} value contractDuration years
  387 + run keyword if condition is not none ${contract_duration_years} input text to exist visible input ${bid_form_value_contract_duration_years_input_locator} ${bid.data.value.contractDuration.years}
  388 + ${contract_duration_days} = get from dictionary by keys ${bid} value contractDuration days
  389 + run keyword if condition is not none ${contract_duration_days} input text to exist visible input ${bid_form_value_contract_duration_days_input_locator} ${bid.data.value.contractDuration.days}
  390 + ${annual_costs_reduction} = get from dictionary by keys ${bid} value annualCostsReduction
  391 + run keyword if condition is not none ${annual_costs_reduction} Подати цінову пропозицію Esco AnnualCostsReduction ${value.annualCostsReduction}
  392 +# ${lots} = get from dictionary by keys ${data} lots
  393 + run keyword if condition is not none ${lots_ids} fill bid form lots ${bid}
  394 +# run keyword if condition is none ${lots_ids} fill bid form whithout lots ${bid}
  395 +# ${features} = get from dictionary by keys ${data} features
  396 +# run keyword if condition is not none ${features_ids} fill bid form features ${bid} ${tender_form_general_panel_add_feature_btn_locator}
  397 + fill bid required documents_all
  398 + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_success_msg} ${tender_created_checker_element_locator}
  399 +
  400 +fill bid form lots
  401 + [Arguments] ${bid} ${lots_ids} ${features_ids}
  402 + [Documentation] Заповнити лотову цінову пропозицію bid для тендера tender_uaid на лоти lots_ids з неціновими показниками features_ids (якщо features_ids != None).
  403 +
  404 + ${lots} = get from dictionary by keys ${bid} lotValues
  405 + ${lots_length} = Get Length ${lots}
  406 + : FOR ${INDEX} IN RANGE 0 ${lots_length}
  407 + \ ${amount} = convert_float_to_string ${bid.data.value.amount}
  408 + \ run keyword and ignore error input number to exist visible input ${bid_form_value_amount_input_locator} ${amount}
  409 + \ ${self_qualified} = get from dictionary by keys ${bid} selfQualified
  410 + \ run keyword and ignore error ${self_qualified} click visible element ${bid_form_value_self_qualified_input_locator}
  411 + \ ${self_eligible} = get from dictionary by keys ${bid} selfEligible
  412 + \ run keyword if condition is not none ${self_eligible} click visible element ${bid_form_value_self_eligible_input_locator}
  413 + \ run keyword if condition is not none ${features_ids} fill bid form features ${bid.data.parameters}
  414 +
  415 +fill bid form features
  416 + [Arguments] ${bid_parameters}
  417 + [Documentation] Заповнити нецінові показники цінової пропозиції.
  418 +
  419 + ${features_length} = Get Length ${bid_parameters}
  420 + : FOR ${INDEX} IN RANGE 0 ${features_length}
  421 + \ ${bid_form_feature_input_locator} replace string ${bid_form_feature_input_locator_tpl} %title% ${features[${INDEX}]['code']}
  422 + \ Run Keyword And Ignore Error click visible element ${bid_form_feature_input_locator}
  423 + \ Run Keyword And Ignore Error Select From List By Label ${bid_form_feature_input_locator} ${features[${INDEX}]['value']}
  424 +
  425 +Подати цінову пропозицію Esco AnnualCostsReduction
  426 + [Arguments] ${values}
  427 + [Documentation] Заповнити цінову пропозицію Esco (параметр AnnualCostsReduction).
  428 +
  429 + ${input_index }= set variable 1
  430 + : FOR ${value} IN @{values}
  431 + \ ${bid_form_value_annual_costs_reduction_input_locator} replace string ${bid_form_value_annual_costs_reduction_input_locator_tpl} %index% ${input_index}
  432 + \ input float ${bid_form_value_annual_costs_reduction_input_locator} ${value}
  433 + \ ${input_index} = evaluate ${input_index} + 1
  434 +
  435 +fill bid required documents_all
  436 + [Arguments] ${values}
  437 + [Documentation] Додати фейковий документ до цінової пропозиції при створенні.
  438 +
  439 + ${file_path} ${file_name} ${file_content} = create_fake_doc
  440 + click visible element ${bid_form_add_document_all_btn_locator}
  441 + choose file ${add_file_to_form_locator} ${file_path}
  442 + wait until element is visible ${bid_form_add_document_type_input_locator} ${waiting_timeout} ${waiting_error}
  443 +# submit current visible popup
  444 + Run Keyword And Ignore Error Select From List By Value ${bid_form_add_document_type_input_locator} qualificationDocuments
  445 + click visible element ${bid_form_add_document_description_btn_locator}
  446 + wait until element is visible ${bid_form_add_document_description_input_locator} ${waiting_timeout} ${waiting_error}
  447 + input text to exist visible input ${bid_form_add_document_description_input_locator} test2
  448 + click visible element ${bid_form_add_document_close_description_btn_locator}
  449 +
  450 +fill bid form edit
  451 + [Arguments] ${tender_uaid} ${fieldname} ${fieldvalue}
  452 + [Documentation] Змінити поле fieldname на fieldvalue цінової пропозиції користувача username для тендера tender_uaid.
  453 +
  454 + click visible element ${bid_form_open_btn_locator}
  455 + wait until popup is visible
  456 + Run Keyword If '${fieldname}' == 'lotValues[0].value.amount' and '${mode}' != 'esco' Run Keywords
  457 + ... ${amount} = convert_float_to_string ${fieldvalue}
  458 + ... input number to exist visible input ${bid_form_value_amount_input_locator} ${amount}
  459 + submit form and check result ${bid_form_submit_btn_locator} ${bid_form_submit_edit_success_msg} ${tender_created_checker_element_locator}
  460 +
  461 +
243 462
... ...
... ... @@ -92,7 +92,7 @@ ${plan_search_form_query_input_locator} = jquery=#plan
92 92 ${plan_search_form_result_locator_tpl} = jquery=#plan-list .lots__item .lot__characteristic li:contains(%query%)
93 93
94 94 # tender form
95   -${tender_form_submit_success_msg} = Закупівля створена, дочекайтесь опублікування на сайті уповноваженого органу.
  95 +${tender_form_submit_success_msg} = дочекайтесь опублікування на сайті уповноваженого органу.
96 96 ${tender_form_locator} = id=tender-form
97 97 ${tender_form_procurement_method_type_input_locator} = jquery=[id$="form-procurement_method_type"]
98 98 ${tender_multilot_locator} = jquery=[id$="form-is_multilot"]
... ... @@ -115,17 +115,26 @@ ${tender_tender_quick_mode_locator} = jquery=[id$=
115 115 #esco
116 116 ${tender_form_general_funding_kind_input_locator} id=tenderescoform-funding_kind
117 117 ${tender_form_general_nbu_discount_rate_input_locator} id=tenderescoform-nbu_discount_rate
  118 +#closeframework
  119 +${tender_form_general_max_awards_count_input_locator} = jquery=[id$="form-max_awards_count"]
  120 +${tender_form_general_agreement_duration_years_input_locator} = jquery=[id$="form-agreement_duration_years"]
  121 +${tender_form_general_agreement_duration_months_input_locator} = jquery=[id$="form-agreement_duration_months"]
  122 +${tender_form_general_agreement_duration_days_input_locator} = jquery=[id$="form-agreement_duration_days"]
118 123
119 124 ${tender_form_general_panel_add_feature_btn_locator} = jquery=#collapseGeneral .btn[data-attribute="features"]
120 125 ${tender_form_features_panel_edit_btn_locator} = jquery=.fancybox-content [href$="#add-features"]
121 126 ${feature_form_popup_title_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title"]:first
122 127 ${feature_form_popup_description_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-description"]:first
  128 +${feature_form_popup_title_en_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-title_en"]:first
  129 +${feature_form_popup_description_en_input_locator} = jquery=.fancybox-is-open .tab-content:first > .tab-pane.active:first [id$="-description_en"]:first
123 130 ${feature_form_popup_value_input_locator} = jquery=[id$="-value"]
124 131 ${feature_form_popup_add-enums_btn_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .btn-add a[href$="#add-enums"]
125 132 ${feature_form_popup_enum_title_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:first > .tab-pane.active input[id$="-title"]
  133 +${feature_form_popup_enum_title_en_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:first > .tab-pane.active input[id$="-title_en"]
126 134 ${feature_form_popup_enum_value_input_locator} = jquery=.fancybox-is-open .enums-dynamic-forms-wrapper .tab-content:first > .tab-pane.active input[id$="-value"]
127 135
128 136 ${tender_form_general_panel_add_document_btn_locator} = jquery=#collapseGeneral .btn[data-attribute="documents"]
  137 +${tender_form_general_panel_edit_add_document_btn_locator} = jquery=div[data-form="general-form-popup"] .js-form-hidden-popup-panel:last a.btn-update
129 138
130 139 #${tender_form_item_add_edit_btn_locator} = jquery=.js-form-group-popup-panel .panel-heading .actions-wrapper .js-form-popup-add
131 140 #последняя кнопка “Додати” для номенклатуры (для лотовой и безлотовой)
... ... @@ -155,6 +164,8 @@ ${lot_form_popup_minimalstep_amount_input_locator} = jquery=.fanc
155 164 ${lot_form_popup_min_step_percentage_amount_input_locator} = jquery=.fancybox-is-open [id$="-min_step_percentage"]
156 165
157 166 ${tender_form_lot_panel_add_feature_btn_locator} = jquery=#Lots .js-form-popup-panel-list:first > .js-form-popup-panel-item:last .actions-wrapper .btn[data-attribute="features"]
  167 +${tender_form_lot_panel_add_document_btn_locator_tpl} = jquery=#Lots #collapseLots div[data-title*="%lot_id%"] .actions-wrapper a.js-btn-add-form-popup-panel:last'
  168 +${tender_form_lot_panel_edit_add_document_btn_locator} = jquery=#Lots #collapseLots div[data-title*="%lot_id%"] .js-form-hidden-popup-panel:last .actions-wrapper a.js-form-popup-update
158 169
159 170 #${tender_form_milestones_percentage_locator} = jquery=.js-item.tab-pane.active [id$="-percentage"]
160 171 #${tender_form_milestones_code_locator} = jquery=.tab-pane.active [id$="-code"]
... ... @@ -170,12 +181,68 @@ ${tender_created_checker_element_locator} = id=tender-pa
170 181 ${tender_view_checker_element_locator} = id=tender-general-info
171 182 ${tender_sync_element_locator} = jquery=#aside-part-pjax .status-label .fa-refresh
172 183 ${tender_uaid_text_locator} = jquery=#tender-general-info .tender-id .value
  184 +${tender_edit_btn_locator} = jquery=#aside-part-pjax a[href*='tender/update']
173 185
174   -${button_refresh_element} jquery=.fancybox-is-open .btn-add .fa-spin
  186 +#елемент проверки загрузки формы в попапе
  187 +${popup_dynamic_form_loading_element_locator} jquery=.fancybox-is-open .btn-add .fa-spin
175 188 #${add_file_to_form} xpath=//input[@type='file']
176   -${add_file_to_form} jquery=.fancybox-is-open input[type$='file']
  189 +${add_file_to_form_locator} jquery=.fancybox-is-open input[type$='file']
177 190
178 191 # tender index + search
179 192 ${tender_search_form_locator} = id=tender-filter-form
180 193 ${tender_search_form_query_input_locator} = jquery=#tender-filter-form .dynamic-search-query input
181 194 ${tender_search_form_result_locator_tpl} = jquery=#tender-list .lots__item .lot__characteristic li:contains(%query%)
  195 +
  196 +#question
  197 +${question_form_open_btn_locator} jquery=#aside-part-pjax a[href*="/tender/questions"]
  198 +${question_open_form_answer_btn_locator_tpl} jquery=#tender-question-list .js-item div[data-title*="%title%"]
  199 +${question_form_open_form_answer_btn_locator_tpl} jquery=#tender-question-list .js-item div[data-title*="%title%"] .btn.btn-default
  200 +${question_form_open_form_answer_input_locator} jquery=.fancybox-is-open .fancybox-content #tender-question-answer-form #questionanswerform-answer
  201 +${question_form_answer_submit_btn_locator} jquery=.fancybox-is-open .fancybox-content #tender-question-answer-form .js-submit-btn
  202 +${plan_form_submit_success_msg} = відповідь на питання надана
  203 +${question_form_create_question_btn_locator} jquery=.#aside-part-pjax [data-url*="/tender/question-create"]
  204 +${question_form_create_questionform_related_of_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-related_of
  205 +${question_form_create_questionform_related_item_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-related_item
  206 +${question_form_create_questionform_related_item_input_locator_tpl} jquery=.fancybox-is-open .fancybox-content #questionform-related_item option:contains("%type_id%")
  207 +${question_form_create_questionform_title_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-title
  208 +${question_form_create_questionform_description_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-description
  209 +${question_form_submit_success_msg} Запитання створене.
  210 +${question_form_create_questionform_related_lot_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-related_lot
  211 +${question_form_create_questionform_related_lot_input_locator} jquery=.fancybox-is-open .fancybox-content #questionform-related_lot
  212 +${question_form_create_questionform_related_lot_input_locator_tpl} jquery=.fancybox-is-open .fancybox-content #questionform-related_lot option:contains("%type_id%")
  213 +
  214 +#claim
  215 +${claim_form_open_btn_locator} jquery=#aside-part-pjax a[href*="/tender/complaints"]
  216 +${claim_form_complaintform_title_input_locator} jquery=.fancybox-is-open .fancybox-content input#complaintform-title
  217 +${claim_form_complaintform_description_input_locator} jquery=.fancybox-is-open .fancybox-content input#complaintform-description
  218 +${claim_form_complaintform_related_of_input_locator} jquery=.fancybox-is-open .fancybox-content #complaintform-related_of
  219 +${claim_form_complaintform_related_lot_input_locator} jquery=.fancybox-is-open .fancybox-content #complaintform-related_lot
  220 +${{claim_form_complaintform_related_item_input_locator_tpl} jquery=.fancybox-is-open .fancybox-content #complaintform-related_lot option:contains("%type_id%")
  221 +${claim_form_complaintform_complaintform_type_input_locator} jquery=.fancybox-is-open .fancybox-content #complaintform-type
  222 +${claim_form_complaintform_document_btn_locator} jquery=.fancybox-is-open .fancybox-content a[data-url*="/tender/get-complaint-document"]
  223 +${claim_form_complaintform_submit_btn_locator} jquery=.fancybox-is-open .fancybox-content a[href*="/tender/complaints"]
  224 +${claim_uaid_text_locator} = jquery=#tender-complaint-list div.item.js-item:last .complaint-id span.value
  225 +
  226 +#bids
  227 +${bid_form_open_btn_locator} jquery=#aside-part-pjax a[href*="/tender/bid"]
  228 +${bid_form_submit_success_msg} Пропозиція створена
  229 +${bid_form_submit_edit_success_msg} Пропозиція відредагована
  230 +${bid_form_feature_input_locator_tpl} jquery=.fancybox-is-open .fancybox-content select[id*="%title%-enum"]
  231 +${bid_form_value_amount_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-value_amount"]
  232 +${bid_form_value_subcontracting_details_input_locator} jquery=.fancybox-is-open .fancybox-content textarea[id*="-subcontracting_details"]
  233 +${bid_form_value_self_eligible_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-self_eligible"]
  234 +${bid_form_value_self_qualified_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-self_qualified"]
  235 +${bid_form_value_yearly_payments_percentage_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-yearly_payments_percentage"]
  236 +${bid_form_value_contract_duration_years_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-contract_duration_years"]
  237 +${bid_form_value_contract_duration_days_input_locator} jquery=.fancybox-is-open .fancybox-content input[id*="-contract_duration_days"]
  238 +${bid_form_value_annual_costs_reduction_input_locator_tpl} jquery=.fancybox-is-open .fancybox-content input[id*="-annual_costs_reduction_%index%"]
  239 +
  240 +${bid_form_add_document_all_btn_locator} jquery=.fancybox-is-open .fancybox-content .field-bidform-documents input[type$="file"]
  241 +${bid_form_add_document_type_input_locator} jquery=.fancybox-is-open .fancybox-content .field-bidform-documents select[id*="-document_type"]
  242 +${bid_form_add_document_description_btn_locator} jquery=.fancybox-is-open .fancybox-content .field-bidform-documents [href$="#edit"]
  243 +${bid_form_add_document_description_input_locator} jquery=.fancybox-is-open .fancybox-content .field-bidform-documents .popover.fade.top.in textarea[id*="-description"].form-control
  244 +${bid_form_add_document_close_description_btn_locator} jquery=.fancybox-is-open .fancybox-content .field-bidform-documents .popover.fade.top.in [href$="#close"]
  245 +${bid_form_submit_btn_locator} jquery=.fancybox-is-open .fancybox-content button.btn.btn-success
  246 +
  247 +
  248 +
... ...
Please register or login to post a comment