Showing
1 changed file
with
661 additions
and
0 deletions
publicbid_tender.robot
0 → 100644
1 | +*** Settings *** | ||
2 | + | ||
3 | +Resource playtender_common.robot | ||
4 | +Resource playtender_variables.robot | ||
5 | +Resource playtender_question.robot | ||
6 | +Resource playtender_claim.robot | ||
7 | +Resource playtender_bid.robot | ||
8 | +Resource playtender_viewer.robot | ||
9 | + | ||
10 | +*** Keywords *** | ||
11 | + | ||
12 | +open new tender form | ||
13 | + [Documentation] відкриття сторінки створення тендеру | ||
14 | + | ||
15 | + open page and wait element by locator ${broker_baseurl}/tender/create ${tender_form_locator} | ||
16 | + | ||
17 | +update tender queue | ||
18 | + [Documentation] запускає оновлення тендерів з ЦБД і додає їх в чергу, тобто синхронізація може відбутися не відразу | ||
19 | + ... поточна сторіка повертається | ||
20 | + | ||
21 | + ${current_url} = get location | ||
22 | + go to ${broker_baseurl}/utils/queue-tender-update | ||
23 | + go to ${current_url} | ||
24 | + | ||
25 | +open tender form by uaid | ||
26 | + [Arguments] ${tender_uaid} | ||
27 | + [Documentation] відкриття сторінки редагування плану | ||
28 | + | ||
29 | + open tender page by uaid ${tender_uaid} | ||
30 | + click visible element and wait until page contains element ${tender_edit_btn_locator} ${tender_form_locator} | ||
31 | + | ||
32 | +open tender page by uaid | ||
33 | + [Arguments] ${uaid} | ||
34 | + [Documentation] відкриває сторінку з тендером | ||
35 | + | ||
36 | + open site page and wait content element ${broker_baseurl}/tender/${uaid} | ||
37 | + ${is_tender_found} = get is element exist ${tender_view_checker_element_locator} | ||
38 | + return from keyword if ${is_tender_found} == ${True} | ||
39 | + ${is_tender_not_found} = get is 404 page | ||
40 | + ${is_needed_to_update_and_wait_sync} = set variable if ${is_test_role_owner} == ${False} and ${is_tender_not_found} ${True} ${False} | ||
41 | + run keyword if ${is_needed_to_update_and_wait_sync} update tender queue | ||
42 | + run keyword if ${is_needed_to_update_and_wait_sync} wait until 404 page disappears | ||
43 | + ${is_tender_found} = get is element exist ${tender_view_checker_element_locator} | ||
44 | + run keyword if ${is_tender_found} == ${False} fail Opening tender page by uaid fails. | ||
45 | + | ||
46 | + | ||
47 | +fill tender form | ||
48 | + [Arguments] ${data} | ||
49 | + [Documentation] заповнення форми з масива даних | ||
50 | + | ||
51 | + fill tender general info ${data} | ||
52 | + ${features} = get from dictionary by keys ${data} features | ||
53 | + run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_general_panel_add_feature_btn_locator} | ||
54 | + ${items} = get from dictionary by keys ${data} items | ||
55 | + run keyword if condition is not none ${items} fill tender form items ${items} | ||
56 | + ${milestones} = get from dictionary by keys ${data} milestones | ||
57 | + run keyword and ignore error run keyword if condition is not none ${milestones} fill tender form milestones ${milestones} | ||
58 | + ${lots} = get from dictionary by keys ${data} lots | ||
59 | + run keyword if condition is not none ${lots} fill tender form lots ${lots} | ||
60 | + ${supplier_data} = op_robot_tests.tests_files.service_keywords . Test Supplier Data | ||
61 | + ##### BOF - TMP for negotiation milestone 1 lot##### | ||
62 | + run keyword if '${mode}' in 'reporting' Set Global Variable ${rep_val} ${data.value.amount} | ||
63 | + ##### EOF - TMP ##### | ||
64 | + run keyword if '${mode}' in 'negotiation reporting' fill tender from award reporting ${data.value.amount} ${supplier_data.data.suppliers[0]} | ||
65 | + Run Keyword And Ignore Error fill tender required documents | ||
66 | + ${procurement_method_type} = get from dictionary by keys ${data} procurementMethodType | ||
67 | + Run Keyword And Ignore Error run keyword if '${mode}' in 'openeu open_esco open_framework' or ('${mode}' == 'open_competitive_dialogue' and '${procurement_method_type}' == 'competitiveDialogueEU') fill tender contact person ${data} | ||
68 | +# Run Keyword And Ignore Error Execute Javascript $('a.btn.btn-default.btn-update.js-form-popup-add').click() | ||
69 | + | ||
70 | +fill tender form 2 stage | ||
71 | + [Arguments] ${data} | ||
72 | + [Documentation] заповнення форми з масива даних | ||
73 | + | ||
74 | + fill tender general info 2 stage ${data} | ||
75 | + ${features} = get from dictionary by keys ${data} features | ||
76 | + run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_general_panel_add_feature_btn_locator} | ||
77 | + ${items} = get from dictionary by keys ${data} items | ||
78 | +# run keyword if condition is not none ${items} fill tender form items ${items} | ||
79 | + run keyword if condition is not none ${items} fill tender form ${items} | ||
80 | + ${milestones} = get from dictionary by keys ${data} milestones | ||
81 | + run keyword and ignore error run keyword if condition is not none ${milestones} fill tender form milestones ${milestones} | ||
82 | + ${lots} = get from dictionary by keys ${data} lots | ||
83 | + run keyword if condition is not none ${lots} fill tender form lots 2 stage ${lots} | ||
84 | + ${supplier_data} = op_robot_tests.tests_files.service_keywords . Test Supplier Data | ||
85 | + run keyword if '${mode}' in 'negotiation reporting' fill tender from award reporting ${data.value.amount} ${supplier_data.data.suppliers[0]} | ||
86 | + Run Keyword And Ignore Error fill tender required documents | ||
87 | + | ||
88 | +fill tender general info | ||
89 | + [Arguments] ${data} | ||
90 | + [Documentation] обирає потрібний тип закупівлі, чекає оновлення форми, вказує мультилотовість, заповнює | ||
91 | + ... приховані поля + відкриває попап основних даних, заповнює його і закриває | ||
92 | + | ||
93 | + Execute Javascript $(window).scrollTop(0) | ||
94 | + wait until page does not contain element ${tender_load_form_after_mode_locator} | ||
95 | + wait until page contains element ${tender_form_procurement_method_type_input_locator} | ||
96 | + capture page screenshot | ||
97 | + ${procurement_method_type} = get from dictionary by keys ${data} procurementMethodType | ||
98 | + capture page screenshot | ||
99 | + run keyword if condition is not none ${procurement_method_type} select from list by value ${tender_form_procurement_method_type_input_locator} ${procurement_method_type} | ||
100 | + wait until page does not contain element ${tender_load_form_after_mode_locator} | ||
101 | + | ||
102 | + ${lots} = get from dictionary by keys ${data} lots | ||
103 | + run keyword if condition is not none ${lots} Run Keyword And Ignore Error Execute Javascript $('[id$="form-is_multilot"]').click() | ||
104 | + wait until page does not contain element ${tender_load_form_after_mode_locator} 20 | ||
105 | + | ||
106 | + open popup by btn locator ${plan_form_general_panel_edit_btn_locator} | ||
107 | + ${plan_path} = Get Variable Value ${ARTIFACT_FILE} artifact_plan.yaml | ||
108 | + ${closeFrameworkAgreementSelectionUA_path} = Get Variable Value ${ARTIFACT_FILE} artifact.yaml | ||
109 | + ${ARTIFACT} = load_data_from ${plan_path} | ||
110 | + run keyword and ignore error run keyword if condition is not none ${ARTIFACT.tender_uaid} input text to visible input ${tender_form_general_tender_plan_id_locator} ${ARTIFACT.tender_uaid} | ||
111 | + ${ARTIFACT2} = load_data_from ${closeFrameworkAgreementSelectionUA_path} | ||
112 | + run keyword and ignore error run keyword if condition is not none ${ARTIFACT.tender_uaid} input text to visible input ${tender_form_general_agreementid_input_locator} ${ARTIFACT2.tender_uaid} | ||
113 | + ${title} = get from dictionary by keys ${data} title | ||
114 | + run keyword if condition is not none ${title} input text to visible input ${tender_form_general_tender_title_locator} ${title} | ||
115 | + ${title_en} = get from dictionary by keys ${data} title_en | ||
116 | + run keyword if condition is not none ${title} input text to exist visible input ${tender_form_general_tender_title_en_locator} ${title_en} | ||
117 | + ${description} = get from dictionary by keys ${data} description | ||
118 | + run keyword if condition is not none ${title} input text to visible input ${tender_form_general_tender_description_locator} ${description} | ||
119 | + ${description_en} = get from dictionary by keys ${data} description_en | ||
120 | + run keyword if condition is not none ${title} input text to exist visible input ${tender_form_general_tender_description_en_locator} ${description_en} | ||
121 | + ${funders} = get from dictionary by keys ${data} funders | ||
122 | + run keyword if condition is not none ${funders} Click Element ${tender_form_general_tender_funder_locator} | ||
123 | + run keyword if condition is not none ${funders} fill tender form funders ${funders} | ||
124 | + ${amount} = get from dictionary by keys ${data} value amount | ||
125 | + run keyword and ignore error run keyword if condition is not none ${amount} run keyword and ignore error input number to exist visible input ${tender_form_general_value_amount_input_locator} ${amount} | ||
126 | + ${currency} = get from dictionary by keys ${data} value currency | ||
127 | + run keyword if condition is not none ${currency} select from visible list by value ${tender_form_general_value_currency_input_locator} ${currency} | ||
128 | + ${value_added_tax_included} = get from dictionary by keys ${data} value valueAddedTaxIncluded | ||
129 | + run keyword if condition is not none ${value_added_tax_included} run keyword if ${value_added_tax_included} Execute Javascript $('[id$="form-value_added_tax_included"]').click() | ||
130 | +##run keyword and ignore error | ||
131 | + | ||
132 | +##click element ${tender_form_general_value_added_tax_input_locator} | ||
133 | + Execute Javascript $('[id$="form-test_mode"]').click() | ||
134 | + ${min_step_amount} = get from dictionary by keys ${data} minimalStep amount | ||
135 | + run keyword if condition is not none ${min_step_amount} input number to exist visible input ${tender_form_general_minimalStep_amount_input_locator} ${min_step_amount} | ||
136 | + ${main_procurement_category} = get from dictionary by keys ${data} mainProcurementCategory | ||
137 | + run keyword if condition is not none ${main_procurement_category} select from visible list by value ${tender_form_general_main_procurement_category_input_locator} ${main_procurement_category} | ||
138 | + ${tender_enquiry_period_start_date} = get from dictionary by keys ${data} enquiryPeriod startDate | ||
139 | +# run keyword if condition is not none ${tender_enquiry_period_start_date} select from visible list by year of date ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
140 | + run keyword and ignore error run keyword if condition is not none ${tender_enquiry_period_start_date} input datetime to visible input ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
141 | + ${tender_enquiry_period_end_date} = get from dictionary by keys ${data} enquiryPeriod endDate | ||
142 | +# run keyword if condition is not none ${tender_enquiry_period_start_date} select from visible list by year of date ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
143 | + run keyword if condition is not none ${tender_enquiry_period_end_date} input datetime to visible input ${tender_enquiry_period_end_date_input_locator} ${tender_enquiry_period_end_date} | ||
144 | + ${tender_start_date} = get from dictionary by keys ${data} tenderPeriod startDate | ||
145 | + run keyword if condition is not none ${tender_start_date} run keyword and ignore error input datetime to visible input ${tender_tender_period_start_date_input_locator} ${tender_start_date} | ||
146 | + ${tender_end_date} = get from dictionary by keys ${data} tenderPeriod endDate | ||
147 | + run keyword if condition is not none ${tender_end_date} input datetime to visible input ${tender_tender_period_end_date_input_locator} ${tender_end_date} | ||
148 | +# run keyword and ignore error click element ${tender_tender_quick_mode_locator} | ||
149 | + run keyword and ignore error Execute Javascript $('[id$="form-quick_mode"]').click() | ||
150 | + ${classification} = get from dictionary by keys ${data} classification | ||
151 | + run keyword if condition is not none ${classification} select classification by code attributes ${plan_form_classification_edit_btn_locator} ${classification} | ||
152 | + ${additional_classifications} = get from dictionary by keys ${data} additionalClassifications | ||
153 | + run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_additional_classification_edit_btn_locator} ${additional_classifications} ${None} ${kekv_schemes} | ||
154 | + run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_kekv_classification_edit_btn_locator} ${additional_classifications} ${kekv_schemes} | ||
155 | + ${funding_kind} = get from dictionary by keys ${data} fundingKind | ||
156 | + run keyword if condition is not none ${funding_kind} select from visible list by value ${tender_form_general_funding_kind_input_locator} ${funding_kind} | ||
157 | +#esco | ||
158 | + ${nbu_discount_rate} = get from dictionary by keys ${data} NBUdiscountRate | ||
159 | + ${nbu_discount_rate} = Run keyword If '${nbu_discount_rate}' != '${None}' set_value_minimalStepPercentage ${nbu_discount_rate} | ||
160 | + ${nbu_discount_rate} = Run keyword If '${nbu_discount_rate}' != '${None}' convert_esco__float_to_string ${nbu_discount_rate} | ||
161 | + run keyword and ignore error 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} | ||
162 | +#closeframework | ||
163 | + ${max_awards_count} = get from dictionary by keys ${data} maxAwardsCount | ||
164 | + 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} | ||
165 | + ${agreement_duration_years} = get from dictionary by keys ${data} agreementDuration | ||
166 | + ${agreement_duration_years1}= Run keyword If '${agreement_duration_years}' != '${None}' split_agreementDuration ${agreement_duration_years} year | ||
167 | + 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} | ||
168 | + ${agreement_duration_months} = get from dictionary by keys ${data} agreementDuration | ||
169 | + ${agreement_duration_months1}= Run keyword If '${agreement_duration_months}' != '${None}' split_agreementDuration ${agreement_duration_months} month | ||
170 | + 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} | ||
171 | + ${agreement_duration_days} = get from dictionary by keys ${data} agreementDuration | ||
172 | + ${agreement_duration_days1}= Run keyword If '${agreement_duration_days}' != '${None}' split_agreementDuration ${agreement_duration_years} day | ||
173 | + 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} | ||
174 | +#closeFrameworkAgreementSelectionUA | ||
175 | + ${max_awards_count} = get from dictionary by keys ${data} maxAwardsCount | ||
176 | + 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} | ||
177 | + ${agreement_duration_years} = get from dictionary by keys ${data} agreementDuration | ||
178 | + ${agreement_duration_years1}= Run keyword If '${agreement_duration_years}' != '${None}' split_agreementDuration ${agreement_duration_years} year | ||
179 | + 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} | ||
180 | + ${agreement_duration_months} = get from dictionary by keys ${data} agreementDuration | ||
181 | + ${agreement_duration_months1}= Run keyword If '${agreement_duration_months}' != '${None}' split_agreementDuration ${agreement_duration_months} month | ||
182 | + 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} | ||
183 | + ${agreement_duration_days} = get from dictionary by keys ${data} agreementDuration | ||
184 | + ${agreement_duration_days1}= Run keyword If '${agreement_duration_days}' != '${None}' split_agreementDuration ${agreement_duration_years} day | ||
185 | + 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} | ||
186 | +#negotiation | ||
187 | + ${cause} = get from dictionary by keys ${data} cause | ||
188 | + run keyword if condition is not none ${cause} select from visible list by value ${tender_form_general_cause_input_locator} ${cause} | ||
189 | + ${cause_description} = get from dictionary by keys ${data} causeDescription | ||
190 | + run keyword if condition is not none ${cause_description} input text to visible input ${tender_form_general_cause_description_input_locator} ${cause_description} | ||
191 | +#complaints | ||
192 | + Run Keyword If '${SUITE_NAME}' == 'Tests Files.Complaints' click visible element ${tender_form_auction_skip_mode_input_locator} | ||
193 | + submit current visible popup | ||
194 | + | ||
195 | + | ||
196 | +fill tender general info 2 stage | ||
197 | + [Arguments] ${data} | ||
198 | + [Documentation] обирає потрібний тип закупівлі, чекає оновлення форми, вказує мультилотовість, заповнює | ||
199 | + ... приховані поля + відкриває попап основних даних, заповнює його і закриває | ||
200 | + | ||
201 | + Execute Javascript $(window).scrollTop(0) | ||
202 | + wait until page does not contain element ${tender_load_form_after_mode_locator} | ||
203 | + wait until page contains element ${tender_form_procurement_method_type_input_locator} | ||
204 | + capture page screenshot | ||
205 | + ${procurement_method_type} = get from dictionary by keys ${data} procurementMethodType | ||
206 | + capture page screenshot | ||
207 | + run keyword if condition is not none ${procurement_method_type} select from list by value ${tender_form_procurement_method_type_input_locator} ${procurement_method_type} | ||
208 | + wait until page does not contain element ${tender_load_form_after_mode_locator} | ||
209 | + | ||
210 | + ${lots} = get from dictionary by keys ${data} lots | ||
211 | + run keyword if condition is not none ${lots} Run Keyword And Ignore Error Click Element ${tender_multilot_locator} | ||
212 | + wait until page does not contain element ${tender_load_form_after_mode_locator} 20 | ||
213 | + | ||
214 | + open popup by btn locator ${plan_form_general_panel_edit_btn_locator} | ||
215 | + ${closeFrameworkAgreementSelectionUA_path} = Get Variable Value ${ARTIFACT_FILE} artifact.yaml | ||
216 | + ${ARTIFACT2} = load_data_from ${closeFrameworkAgreementSelectionUA_path} | ||
217 | + run keyword and ignore error run keyword if condition is not none ${ARTIFACT.tender_uaid} input text to visible input ${tender_form_general_agreementid_input_locator} ${ARTIFACT2.tender_uaid} | ||
218 | + ${main_procurement_category} = get from dictionary by keys ${data} mainProcurementCategory | ||
219 | + run keyword if condition is not none ${main_procurement_category} Execute Javascript $('[id$="form-main_procurement_category"]').val('${main_procurement_category}').change() | ||
220 | + ${title} = get from dictionary by keys ${data} title | ||
221 | + run keyword if condition is not none ${title} input text to visible input ${tender_form_general_tender_title_locator} ${title} | ||
222 | + ${title_en} = get from dictionary by keys ${data} title_en | ||
223 | + run keyword if condition is not none ${title} input text to exist visible input ${tender_form_general_tender_title_en_locator} ${title_en} | ||
224 | + ${description} = get from dictionary by keys ${data} description | ||
225 | + run keyword if condition is not none ${title} input text to visible input ${tender_form_general_tender_description_locator} ${description} | ||
226 | + ${description_en} = get from dictionary by keys ${data} description_en | ||
227 | + run keyword if condition is not none ${title} input text to exist visible input ${tender_form_general_tender_description_en_locator} ${description_en} | ||
228 | + ${amount} = get from dictionary by keys ${data} value amount | ||
229 | + run keyword and ignore error run keyword if condition is not none ${amount} run keyword and ignore error input number to exist visible input ${tender_form_general_value_amount_input_locator} ${amount} | ||
230 | + ${currency} = get from dictionary by keys ${data} value currency | ||
231 | + run keyword if condition is not none ${currency} select from visible list by value ${tender_form_general_value_currency_input_locator} ${currency} | ||
232 | + ${value_added_tax_included} = get from dictionary by keys ${data} value valueAddedTaxIncluded | ||
233 | + run keyword if condition is not none ${value_added_tax_included} run keyword if ${value_added_tax_included} Click Element ${tender_form_general_value_added_tax_input_locator} | ||
234 | + ${min_step_amount} = get from dictionary by keys ${data} minimalStep amount | ||
235 | + run keyword if condition is not none ${min_step_amount} input number to exist visible input ${tender_form_general_minimalStep_amount_input_locator} ${min_step_amount} | ||
236 | + ${tender_enquiry_period_start_date} = get from dictionary by keys ${data} enquiryPeriod startDate | ||
237 | +# run keyword if condition is not none ${tender_enquiry_period_start_date} select from visible list by year of date ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
238 | + run keyword if condition is not none ${tender_enquiry_period_start_date} input datetime to visible input ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
239 | + ${tender_enquiry_period_end_date} = get from dictionary by keys ${data} enquiryPeriod endDate | ||
240 | +# run keyword if condition is not none ${tender_enquiry_period_start_date} select from visible list by year of date ${tender_enquiry_period_start_date_input_locator} ${tender_enquiry_period_start_date} | ||
241 | + run keyword if condition is not none ${tender_enquiry_period_end_date} input datetime to visible input ${tender_enquiry_period_end_date_input_locator} ${tender_enquiry_period_end_date} | ||
242 | + ${tender_start_date} = get from dictionary by keys ${data} tenderPeriod startDate | ||
243 | + run keyword if condition is not none ${tender_start_date} run keyword and ignore error input datetime to visible input ${tender_tender_period_start_date_input_locator} ${tender_start_date} | ||
244 | + ${tender_end_date} = get from dictionary by keys ${data} tenderPeriod endDate | ||
245 | + run keyword if condition is not none ${tender_end_date} input datetime to visible input ${tender_tender_period_end_date_input_locator} ${tender_end_date} | ||
246 | + ${date_start} = Get Current Date increment=03:00:00 | ||
247 | + run keyword if condition is none ${tender_end_date} input datetime to visible input ${tender_tender_period_end_date_input_locator} ${date_start} | ||
248 | + run keyword and ignore error click element ${tender_tender_quick_mode_locator} | ||
249 | + ${classification} = get from dictionary by keys ${data} classification | ||
250 | + run keyword if condition is not none ${classification} select classification by code attributes ${plan_form_classification_edit_btn_locator} ${classification} | ||
251 | + ${additional_classifications} = get from dictionary by keys ${data} additionalClassifications | ||
252 | + run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_additional_classification_edit_btn_locator} ${additional_classifications} ${None} ${kekv_schemes} | ||
253 | + run keyword if condition is not none ${additional_classifications} select classification by array of code attributes ${plan_form_kekv_classification_edit_btn_locator} ${additional_classifications} ${kekv_schemes} | ||
254 | + ${funding_kind} = get from dictionary by keys ${data} fundingKind | ||
255 | + run keyword if condition is not none ${funding_kind} select from visible list by value ${tender_form_general_funding_kind_input_locator} ${funding_kind} | ||
256 | +#closeframework | ||
257 | + ${max_awards_count} = get from dictionary by keys ${data} maxAwardsCount | ||
258 | + 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} | ||
259 | + ${agreement_duration_years} = get from dictionary by keys ${data} agreementDuration | ||
260 | + ${agreement_duration_years1}= Run keyword If '${agreement_duration_years}' != '${None}' split_agreementDuration ${agreement_duration_years} year | ||
261 | + 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} | ||
262 | + ${agreement_duration_months} = get from dictionary by keys ${data} agreementDuration | ||
263 | + ${agreement_duration_months1}= Run keyword If '${agreement_duration_months}' != '${None}' split_agreementDuration ${agreement_duration_months} month | ||
264 | + 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} | ||
265 | + ${agreement_duration_days} = get from dictionary by keys ${data} agreementDuration | ||
266 | + ${agreement_duration_days1}= Run keyword If '${agreement_duration_days}' != '${None}' split_agreementDuration ${agreement_duration_years} day | ||
267 | + 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} | ||
268 | +#closeFrameworkAgreementSelectionUA | ||
269 | + ${max_awards_count} = get from dictionary by keys ${data} maxAwardsCount | ||
270 | + 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} | ||
271 | + ${agreement_duration_years} = get from dictionary by keys ${data} agreementDuration | ||
272 | + ${agreement_duration_years1}= Run keyword If '${agreement_duration_years}' != '${None}' split_agreementDuration ${agreement_duration_years} year | ||
273 | + 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} | ||
274 | + ${agreement_duration_months} = get from dictionary by keys ${data} agreementDuration | ||
275 | + ${agreement_duration_months1}= Run keyword If '${agreement_duration_months}' != '${None}' split_agreementDuration ${agreement_duration_months} month | ||
276 | + 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} | ||
277 | + ${agreement_duration_days} = get from dictionary by keys ${data} agreementDuration | ||
278 | + ${agreement_duration_days1}= Run keyword If '${agreement_duration_days}' != '${None}' split_agreementDuration ${agreement_duration_years} day | ||
279 | + 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} | ||
280 | + submit current visible popup | ||
281 | + | ||
282 | +fill tender form items | ||
283 | + [Arguments] ${item_attributes_array} | ||
284 | + [Documentation] заповнення номенклатури тендеру | ||
285 | + | ||
286 | + :FOR ${item_attributes} IN @{item_attributes_array} | ||
287 | + \ run keyword and ignore error open popup by btn locator ${tender_form_item_add_edit_btn_locator} | ||
288 | +# \ wait until popup is visible | ||
289 | + \ fill tender item form in opened popup ${item_attributes} | ||
290 | + \ submit current visible popup | ||
291 | + \ ${features} = get from dictionary by keys ${item_attributes} features | ||
292 | + \ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_item_panel_add_feature_btn_locator} | ||
293 | + | ||
294 | +fill tender form items 2 stage | ||
295 | + [Arguments] ${item_attributes_array} | ||
296 | + [Documentation] заповнення номенклатури тендеру | ||
297 | + | ||
298 | + :FOR ${item_attributes} IN @{item_attributes_array} | ||
299 | + \ run keyword and ignore error open popup by btn locator ${tender_form_item_edit_btn_locator} | ||
300 | +# \ wait until popup is visible | ||
301 | + \ fill tender item form in opened popup ${item_attributes} | ||
302 | + \ submit current visible popup | ||
303 | + \ ${features} = get from dictionary by keys ${item_attributes} features | ||
304 | + \ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_item_panel_add_feature_btn_locator} | ||
305 | + | ||
306 | +fill tender item form in opened popup | ||
307 | + [Arguments] ${data} | ||
308 | + [Documentation] заповнює відкриту форму згідно вказаних даних | ||
309 | + | ||
310 | + fill item form in opened popup ${data} | ||
311 | + | ||
312 | + ${region} = get from dictionary by keys ${data} deliveryAddress region | ||
313 | + run keyword if condition is not none ${region} select from visible list by label ${item_form_popup_delivery_region_id_input_locator} ${region} | ||
314 | + ${postal_code} = get from dictionary by keys ${data} deliveryAddress postalCode | ||
315 | + run keyword if condition is not none ${postal_code} input text to visible input ${item_form_popup_delivery_postal_code_input_locator} ${postal_code} | ||
316 | + ${locality} = get from dictionary by keys ${data} deliveryAddress locality | ||
317 | + run keyword if condition is not none ${locality} input text to visible input ${item_form_popup_delivery_locality_input_locator} ${locality} | ||
318 | + ${street_address} = get from dictionary by keys ${data} deliveryAddress streetAddress | ||
319 | + run keyword if condition is not none ${street_address} input text to visible input ${item_form_popup_delivery_street_address_input_locator} ${street_address} | ||
320 | + ${delivery_start_date} = get from dictionary by keys ${data} deliveryDate startDate | ||
321 | + ${delivery_start_date} = Run keyword If '${delivery_start_date}' != '${None}' parse_deliveryPeriod_date ${delivery_start_date} | ||
322 | + run keyword if condition is not none ${delivery_start_date} run keyword and ignore error input datetime to exist visible input ${item_form_popup_delivery_start_date_input_locator} ${delivery_start_date} | ||
323 | + ${delivery_end_date} = get from dictionary by keys ${data} deliveryDate endDate | ||
324 | + ${delivery_end_date} = Run keyword If '${delivery_end_date}' != '${None}' parse_deliveryPeriod_date ${delivery_end_date} | ||
325 | + run keyword if condition is not none ${delivery_end_date} run keyword and ignore error input text ${item_form_popup_delivery_end_date_input_locator} ${delivery_end_date} | ||
326 | +## run keyword if condition is not none ${delivery_end_date} run keyword and ignore error input datetime to exist visible input ${item_form_popup_delivery_end_date_input_locator} ${delivery_end_date} | ||
327 | + | ||
328 | +fill tender form milestones | ||
329 | + [Arguments] ${milestone_attributes_array} | ||
330 | + [Documentation] заповнення умов оплати тендеру | ||
331 | + | ||
332 | + open popup by btn locator ${tender_form_milestones_panel_edit_btn_locator} | ||
333 | +# click visible element ${tender_form_milestones_panel_edit_btn_locator} | ||
334 | +# wait until popup is visible | ||
335 | + :FOR ${milestone_attributes} IN @{milestone_attributes_array} | ||
336 | + \ click visible element ${milestone_form_popup_add_btn_locator} | ||
337 | + \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
338 | + \ fill milestone form in opened popup ${milestone_attributes} | ||
339 | + submit current visible popup | ||
340 | + | ||
341 | +fill tender form milestones fake | ||
342 | + [Documentation] заповнення умов оплати тендеру | ||
343 | + | ||
344 | + open popup by btn locator ${tender_form_milestones_panel_edit_btn_locator} | ||
345 | + click visible element ${milestone_form_popup_add_btn_locator} | ||
346 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
347 | + select from visible list by value ${milestone_form_popup_title_input_locator} submissionDateOfApplications | ||
348 | + input text to exist visible input ${milestone_form_popup_description_input_locator} submissionDateOfApplications | ||
349 | + input text to exist visible input ${milestone_form_popup_percentage_input_locator} 100 | ||
350 | + select from visible list by value ${milestone_form_popup_code_input_locator} postpayment | ||
351 | + input text to exist visible input ${milestone_form_popup_duration_days_input_locator} 145 | ||
352 | + select from visible list by value ${milestone_form_popup_duration_type_input_locator} working | ||
353 | + submit current visible popup | ||
354 | + | ||
355 | +fill milestone form in opened popup | ||
356 | + [Arguments] ${data} | ||
357 | + [Documentation] заповнює відкриту форму в активній вкладці згідно вказаних даних | ||
358 | + | ||
359 | + ${title} = get from dictionary by keys ${data} title | ||
360 | + run keyword if condition is not none ${title} select from visible list by value ${milestone_form_popup_title_input_locator} ${title} | ||
361 | + ${description} = get from dictionary by keys ${data} description | ||
362 | + run keyword if condition is not none ${description} input text to exist visible input ${milestone_form_popup_description_input_locator} ${description} | ||
363 | + ${percentage} = get from dictionary by keys ${data} percentage | ||
364 | + run keyword if condition is not none ${percentage} input text to exist visible input ${milestone_form_popup_percentage_input_locator} ${percentage} | ||
365 | + ${code} = get from dictionary by keys ${data} code | ||
366 | + run keyword if condition is not none ${code} select from visible list by value ${milestone_form_popup_code_input_locator} ${code} | ||
367 | + ${duration_days} = get from dictionary by keys ${data} duration days | ||
368 | + run keyword if condition is not none ${duration_days} input text to exist visible input ${milestone_form_popup_duration_days_input_locator} ${duration_days} | ||
369 | + ${duration_type} = get from dictionary by keys ${data} duration type | ||
370 | + run keyword if condition is not none ${duration_type} select from visible list by value ${milestone_form_popup_duration_type_input_locator} ${duration_type} | ||
371 | + | ||
372 | +fill tender form features | ||
373 | + [Arguments] ${feature_attributes_array} ${add_btn_locator} | ||
374 | + [Documentation] заповнення нецінові крітерії тендеру | ||
375 | + | ||
376 | + open popup by btn locator ${add_btn_locator} | ||
377 | +# click visible element ${add_btn_locator} | ||
378 | +# wait until popup is visible | ||
379 | + :FOR ${feature_attributes} IN @{feature_attributes_array} | ||
380 | +# \ click visible element ${tender_form_features_panel_edit_btn_locator} | ||
381 | + \ execute javascript ${tender_form_features_panel_edit_btn_locator} | ||
382 | + \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
383 | + \ fill feature form in opened popup ${feature_attributes} | ||
384 | + submit current visible popup | ||
385 | + | ||
386 | +fill tender form features2 | ||
387 | + [Arguments] ${feature_attributes_array} ${add_btn_locator} | ||
388 | + [Documentation] заповнення нецінові крітерії тендеру | ||
389 | + | ||
390 | + open popup by btn locator ${add_btn_locator} | ||
391 | +# click visible element ${add_btn_locator} | ||
392 | +# wait until popup is visible | ||
393 | + click visible element ${tender_form_features_panel_edit_btn_locator} | ||
394 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
395 | + fill feature form in opened popup ${feature_attributes_array} | ||
396 | + submit current visible popup | ||
397 | + | ||
398 | +fill feature form in opened popup | ||
399 | + [Arguments] ${data} | ||
400 | + [Documentation] заповнює відкриту форму в активній вкладці згідно вказаних даних | ||
401 | + | ||
402 | + ${title} = get from dictionary by keys ${data} title | ||
403 | + run keyword if condition is not none ${title} input text to exist visible input ${feature_form_popup_title_input_locator} ${title} | ||
404 | + ${description} = get from dictionary by keys ${data} description | ||
405 | + run keyword if condition is not none ${description} input text to exist visible input ${feature_form_popup_description_input_locator} ${description} | ||
406 | + ${title_en} = get from dictionary by keys ${data} title_en | ||
407 | + run keyword if condition is not none ${title_en} input text to exist visible input ${feature_form_popup_title_en_input_locator} ${title_en} | ||
408 | + ${description_en} = get from dictionary by keys ${data} description | ||
409 | + run keyword if condition is not none ${description_en} input text to exist visible input ${feature_form_popup_description_en_input_locator} ${description_en} | ||
410 | + ${options} = Get From Dictionary ${data} enum | ||
411 | + ${count} = Get Length ${options} | ||
412 | + ${ex}= Evaluate ${count} - 1 | ||
413 | + : FOR ${INDEX} IN RANGE 0 ${count} | ||
414 | + \ 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} | ||
415 | + \ run keyword and ignore error input text to exist visible input ${feature_form_popup_enum_title_en_input_locator} test2 | ||
416 | +# \ 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} | ||
417 | + \ ${value} = convert_float_to_string ${options[${INDEX}].value} | ||
418 | + \ ${value} = Convert To Number ${value} | ||
419 | + \ ${value} = multiply_hundred ${value} | ||
420 | + \ ${value} = convert_float_to_string ${value} | ||
421 | + \ run keyword if condition is not none ${options[${INDEX}].value} input text to exist visible input ${feature_form_popup_enum_value_input_locator} ${value} | ||
422 | + \ Continue For Loop If '${INDEX}' == '${ex}' | ||
423 | + \ Run Keyword If ${count} != 1 click visible element ${feature_form_popup_add-enums_btn_locator} | ||
424 | + \ wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
425 | + | ||
426 | +fill tender form lots | ||
427 | + [Arguments] ${lot_attributes_array} | ||
428 | + [Documentation] заповнення номенклатури тендеру | ||
429 | + | ||
430 | + ##### BOF - TMP for negotiation milestone 1 lot##### | ||
431 | + ${prepared_tender_data} = Get From Dictionary ${td_railway_crutch} data | ||
432 | + ${milestones1} = Run Keyword If "${mode}" in "negotiation" Get From Dictionary ${prepared_tender_data} milestones | ||
433 | + ##### EOF - TMP ##### | ||
434 | + :FOR ${lot_attributes} IN @{lot_attributes_array} | ||
435 | + \ run keyword if '${mode}' not in 'open_framework' open popup by btn locator ${tender_form_lots_panel_edit_btn_locator} | ||
436 | + \ ... ELSE click visible element ${tender_form_lots_edit_lot1_btn_locator} | ||
437 | +# \ open popup by btn locator ${tender_form_lots_panel_edit_btn_locator} | ||
438 | +# \ click visible element ${tender_form_lots_panel_edit_btn_locator} | ||
439 | +# \ wait until popup is visible | ||
440 | + \ fill lot form in opened popup ${lot_attributes} | ||
441 | + \ submit current visible popup | ||
442 | + \ ${features} = get from dictionary by keys ${lot_attributes} features | ||
443 | + \ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_lot_panel_add_feature_btn_locator} | ||
444 | + \ ${milestones} = get from dictionary by keys ${lot_attributes} milestones | ||
445 | + \ run keyword if condition is not none ${milestones} fill tender form milestones ${milestones} | ||
446 | + \ run keyword if condition is none ${milestones} run keyword if "${mode}" in "negotiation" fill tender form milestones ${milestones1} | ||
447 | + \ ${items} = get from dictionary by keys ${lot_attributes} items | ||
448 | + \ run keyword if condition is not none ${items} fill tender form items ${items} | ||
449 | + | ||
450 | +fill tender form lots 2 stage | ||
451 | + [Arguments] ${lot_attributes_array} | ||
452 | + [Documentation] заповнення номенклатури тендеру | ||
453 | + | ||
454 | + ##### BOF - TMP for negotiation milestone 1 lot##### | ||
455 | + ${prepared_tender_data} = Get From Dictionary ${td_railway_crutch} data | ||
456 | + ${milestones1} = Run Keyword If "${mode}" in "negotiation" Get From Dictionary ${prepared_tender_data} milestones | ||
457 | + ##### EOF - TMP ##### | ||
458 | + :FOR ${lot_attributes} IN @{lot_attributes_array} | ||
459 | + \ open popup by btn locator ${tender_form_lots_edit_lot1_btn_locator} | ||
460 | + ##\ open popup by btn locator ${tender_form_lots_panel_edit_btn_locator} | ||
461 | + \ fill lot form in opened popup ${lot_attributes} | ||
462 | + \ submit current visible popup | ||
463 | + \ ${features} = get from dictionary by keys ${lot_attributes} features | ||
464 | + \ run keyword if condition is not none ${features} fill tender form features ${features} ${tender_form_lot_panel_add_feature_btn_locator} | ||
465 | + \ ${milestones} = get from dictionary by keys ${lot_attributes} milestones | ||
466 | + \ run keyword if condition is not none ${milestones} fill tender form milestones ${milestones} | ||
467 | + \ run keyword if condition is none ${milestones} run keyword if "${mode}" in "negotiation" fill tender form milestones ${milestones1} | ||
468 | + \ run keyword if condition is none ${milestones} run keyword if "${mode}" in "framework_selection" fill tender form milestones fake | ||
469 | + \ ${items} = get from dictionary by keys ${lot_attributes} items | ||
470 | + \ run keyword if condition is not none ${items} fill tender form items 2 stage ${items} | ||
471 | + | ||
472 | +fill lot form in opened popup | ||
473 | + [Arguments] ${data} | ||
474 | + [Documentation] заповнює відкриту форму згідно вказаних даних | ||
475 | + | ||
476 | + log many ${data} | ||
477 | + ${title} = get from dictionary by keys ${data} title | ||
478 | + run keyword if condition is not none ${title} input text to visible input ${lot_form_popup_title_input_locator} ${title} | ||
479 | + ${title_en} = get from dictionary by keys ${data} title_en | ||
480 | + run keyword if condition is not none ${title_en} input text to exist visible input ${lot_form_popup_title_en_input_locator} ${title_en} | ||
481 | + ${description} = get from dictionary by keys ${data} description | ||
482 | + run keyword if condition is not none ${description} input text to visible input ${lot_form_popup_description_input_locator} ${description} | ||
483 | + ${description_en} = get from dictionary by keys ${data} description_en | ||
484 | + run keyword if condition is not none ${description_en} input text to exist visible input ${lot_form_popup_description_en_input_locator} ${description_en} | ||
485 | + capture page screenshot | ||
486 | + ${description_ru} = get from dictionary by keys ${data} description_ru | ||
487 | + run keyword if condition is not none ${description_ru} input text to exist visible input ${item_form_popup_description_ru_input_locator} ${description_ru} | ||
488 | + ${amount} = get from dictionary by keys ${data} value amount | ||
489 | + run keyword if condition is not none ${amount} input number to exist visible input ${lot_form_popup_value_amount_input_locator} ${amount} | ||
490 | + ${min_step_amount} = get from dictionary by keys ${data} minimalStep amount | ||
491 | + run keyword if condition is not none ${min_step_amount} input number to exist visible input ${lot_form_popup_minimalstep_amount_input_locator} ${min_step_amount} | ||
492 | + | ||
493 | + ${yearly_payments_percentage_range} = get from dictionary by keys ${data} yearlyPaymentsPercentageRange | ||
494 | + ${yearly_payments_percentage_range} = Run keyword If '${yearly_payments_percentage_range}' != '${None}' set_value_minimalStepPercentage ${yearly_payments_percentage_range} | ||
495 | + ${yearly_payments_percentage_range} = Run keyword If '${yearly_payments_percentage_range}' != '${None}' convert_esco__float_to_string ${yearly_payments_percentage_range} | ||
496 | + run keyword if condition is not none ${yearly_payments_percentage_range} input number to exist visible input ${tender_form_general_yearly_payments_percentage_range_input_locator} ${yearly_payments_percentage_range} | ||
497 | + ${minimal_step_percentage} = get from dictionary by keys ${data} minimalStepPercentage | ||
498 | + ${minimal_step_percentage} = Run keyword If '${minimal_step_percentage}' != '${None}' set_value_minimalStepPercentage ${minimal_step_percentage} | ||
499 | + ${minimal_step_percentage} = Run keyword If '${minimal_step_percentage}' != '${None}' convert_esco__float_to_string ${minimal_step_percentage} | ||
500 | + run keyword if condition is not none ${minimal_step_percentage} input number to exist visible input ${tender_form_general_minimal_step_percentage_input_locator} ${minimal_step_percentage} | ||
501 | +# ${currency} = get from dictionary by keys ${data} value currency | ||
502 | +# run keyword if condition is not none ${currency} select from visible list by value ${tender_form_lots_value_currency_input_locator} ${currency} | ||
503 | +# ${valueAddedTaxIncluded} = get from dictionary by keys ${data} value valueAddedTaxIncluded | ||
504 | +# run keyword if condition is not none ${valueAddedTaxIncluded} run keyword if ${valueAddedTaxIncluded} Click Element ${tender_form_lots_value_added_tax_input_locator} | ||
505 | + | ||
506 | +fill tender form funders | ||
507 | + [Arguments] ${funder_attributes_array} | ||
508 | + [Documentation] заповнення донорів тендеру | ||
509 | + | ||
510 | + :FOR ${funder_attributes} IN @{funder_attributes_array} | ||
511 | + \ ${name} = get from dictionary by keys ${funder_attributes} name | ||
512 | + \ run keyword if condition is not none ${name} select from visible list by label ${tender_form_general_tender_funder_name_locator} ${name} | ||
513 | + | ||
514 | +fill tender required documents | ||
515 | + [Documentation] додає документ до усієї закупівлі для успішної валідації форми | ||
516 | + | ||
517 | + ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
518 | + click visible element ${tender_form_general_panel_add_document_btn_locator} | ||
519 | + choose file ${add_file_to_form_locator} ${file_path} | ||
520 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
521 | + submit current visible popup | ||
522 | + | ||
523 | +fill tender from award reporting | ||
524 | + [Arguments] ${budget} ${award_attributes_array} | ||
525 | + [Documentation] заповнення переможця reporting тендеру | ||
526 | + | ||
527 | + capture page screenshot | ||
528 | + run keyword and ignore error click visible element ${tender_form_general_panel_update_award_negotiation_btn_locator} | ||
529 | + capture page screenshot | ||
530 | +# Run Keyword If "${TEST_NAME}" == "Можливість створити переговорну процедуру" open popup by btn locator ${tender_form_general_panel_add_award_negotiation_btn_locator} | ||
531 | + run keyword and ignore error Run Keyword If "${TEST_NAME}" == "Можливість створити переговорну процедуру" open popup by btn locator ${tender_form_general_panel_add_award_negotiation_btn_locator} | ||
532 | + ... ELSE IF "${TEST_NAME}" == "Можливість створити звіт про укладений договір" open popup by btn locator ${tender_form_general_panel_update_award_reporting_btn_locator} | ||
533 | + capture page screenshot | ||
534 | + Run Keyword If "${TEST_NAME}" == "Можливість зареєструвати і підтвердити постачальника до звіту про укладений договір" open popup by btn locator ${tender_form_general_panel_update_award_reporting_btn_locator} | ||
535 | + capture page screenshot | ||
536 | +# Run Keyword If "${TEST_NAME}" == "Можливість зареєструвати і підтвердити постачальника до переговорної процедури" open popup by btn locator ${tender_form_general_panel_update_award_negotiation_btn_locator} | ||
537 | + capture page screenshot | ||
538 | + fill award reporting form in opened popup ${budget} ${award_attributes_array} | ||
539 | + submit current visible popup | ||
540 | + | ||
541 | +fill award reporting form in opened popup | ||
542 | + [Arguments] ${budget} ${data} | ||
543 | + [Documentation] заповнює відкриту форму в активній вкладці згідно вказаних даних | ||
544 | + | ||
545 | + ${org_name} = get from dictionary by keys ${data} identifier legalName | ||
546 | + run keyword if condition is not none ${org_name} input text to exist visible input ${tender_form_award_organization_name_locator} ${org_name} | ||
547 | + ${organization_identifier_code} = get from dictionary by keys ${data} identifier id | ||
548 | + run keyword if condition is not none ${organization_identifier_code} input text to exist visible input ${tender_form_award_organization_identifier_code_locator} ${organization_identifier_code} | ||
549 | + ${award_organization_scale} = get from dictionary by keys ${data} scale | ||
550 | + run keyword if condition is not none ${award_organization_scale} select from visible list by value ${tender_form_award_organization_scale_locator} ${award_organization_scale} | ||
551 | + ${region} = get from dictionary by keys ${data} address region | ||
552 | + run keyword if condition is not none ${region} select from visible list by label ${tender_form_award_organization_region_id_locator} ${region} | ||
553 | + ${postal_code} = get from dictionary by keys ${data} address postalCode | ||
554 | + run keyword if condition is not none ${postal_code} input text to exist visible input ${tender_form_award_organization_postal_code_locator} ${postal_code} | ||
555 | + ${locality} = get from dictionary by keys ${data} address locality | ||
556 | + run keyword if condition is not none ${locality} input text to exist visible input ${tender_form_award_organization_locality_locator} ${locality} | ||
557 | + ${street_address} = get from dictionary by keys ${data} address streetAddress | ||
558 | + run keyword if condition is not none ${street_address} input text to exist visible input ${tender_form_award_organization_street_address_locator} ${street_address} | ||
559 | + ${contact_point_name} = get from dictionary by keys ${data} contactPoint name | ||
560 | + run keyword if condition is not none ${contact_point_name} input text to exist visible input ${tender_form_award_organization_contact_point_name_locator} ${contact_point_name} | ||
561 | + ${contact_point_email} = get from dictionary by keys ${data} contactPoint email | ||
562 | + run keyword if condition is not none ${contact_point_email} input text to exist visible input ${tender_form_award_organization_contact_point_email_locator} ${contact_point_email} | ||
563 | + ${contact_point_phone} = get from dictionary by keys ${data} contactPoint telephone | ||
564 | + run keyword if condition is not none ${contact_point_phone} input text to exist visible input ${tender_form_award_organization_contact_point_phone_locator} ${contact_point_phone} | ||
565 | +# ${duration_days} = get from dictionary by keys ${data} contactPoint days | ||
566 | +# run keyword if condition is not none ${duration_days} input text to exist visible input ${milestone_form_popup_duration_days_input_locator} ${duration_days} | ||
567 | + input number to exist visible input ${tender_form_award_budget_locator} ${budget} | ||
568 | + | ||
569 | +open tender search form | ||
570 | + [Documentation] відкриває сторінку з пошуком тендерів | ||
571 | + | ||
572 | + open page and wait element by locator ${broker_baseurl}/tenders ${tender_search_form_locator} | ||
573 | + | ||
574 | +save tender form and wait synchronization | ||
575 | + [Documentation] натискає кнопку "Зберегти" і чекає синхронізації тендеру | ||
576 | + | ||
577 | + submit form and check result ${tender_form_submit_btn_locator} ${tender_form_submit_success_msg} ${tender_created_checker_element_locator} ${true} | ||
578 | + wait until page does not contain element with reloading ${tender_sync_element_locator} | ||
579 | + | ||
580 | +add document in tender | ||
581 | + [Arguments] ${filepath} | ||
582 | + [Documentation] Завантажити документ, який знаходиться по шляху filepath. | ||
583 | + | ||
584 | + click visible element ${tender_form_general_panel_edit_add_document_btn_locator} | ||
585 | + choose file ${add_file_to_form_locator} ${filepath} | ||
586 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
587 | + submit current visible popup | ||
588 | + | ||
589 | +add document in lot | ||
590 | + [Arguments] ${filepath} ${lot_id} | ||
591 | + [Documentation] Завантажити в лот (з ідентіфікатором ${lot_id}) документ, який знаходиться по шляху filepath. | ||
592 | + | ||
593 | + ${open_form_add_doc_lot_btn_locator} = replace string ${tender_form_lot_panel_add_document_btn_locator_tpl} %lot_id% ${lot_id} | ||
594 | + click visible element and wait until page contains element ${open_form_add_doc_lot_btn_locator} jquery=.modal.modal-form.js-form-popup.fancybox-content | ||
595 | + choose file ${add_file_to_form_locator} ${filepath} | ||
596 | + wait until page does not contain element ${popup_dynamic_form_loading_element_locator} | ||
597 | + submit current visible popup | ||
598 | + | ||
599 | +confirm-stage2 | ||
600 | + [Documentation] Перевести тендер tender_uaid в статус active.stage2.waiting. | ||
601 | + | ||
602 | + Wait Until Keyword Succeeds 300 s 20 s Wait For stage2button | ||
603 | + click visible element ${tender_stage2_open_btn_locator} | ||
604 | + Wait Until Page Contains ${tender_stage2_submit_success_msg} 60 | ||
605 | +# click visible element ${tender_stage2_submit_success_btn_locator} | ||
606 | +# submit form and check result ${tender_stage2_submit_success_btn_locator} ${tender_stage2_submit_alert_success_msg} ${tender_created_checker_element_locator} | ||
607 | + execute javascript ${tender_stage2_submit_js_success_btn_locator} | ||
608 | + Wait Until Page Contains ${tender_stage2_submit_alert_success_msg} 60 | ||
609 | + wait until alert is visible ${tender_stage2_submit_alert_success_msg} | ||
610 | + run keyword and ignore error close current visible alert | ||
611 | + | ||
612 | + | ||
613 | +activate stage 2 | ||
614 | + [Documentation] Перевести тендер tender_uaid в статус active.tendering. | ||
615 | + | ||
616 | + open popup by btn locator ${tender_form_general_panel_edit_btn_locator} | ||
617 | + ${tender_end_date} = Get Current Date increment=00:35:00 | ||
618 | + input datetime to visible input ${tender_tender_period_end_date_input_locator} ${tender_end_date} | ||
619 | + capture page screenshot | ||
620 | + click visible element ${tender_form_general_panel_draft_mode_input_locator} | ||
621 | + capture page screenshot | ||
622 | + submit current visible popup | ||
623 | + capture page screenshot | ||
624 | + ${file_path} ${file_name} ${file_content} = create_fake_doc | ||
625 | + click visible element ${tender_form_general_panel_document_stage2_input_locator} | ||
626 | + choose file ${add_file_to_form_locator} ${file_path} | ||
627 | + wait until element is visible ${stage2_form_add_document_type_input_locator} | ||
628 | + click visible element ${stage2_form_add_document_description_btn_locator} | ||
629 | + capture page screenshot | ||
630 | + wait until element is visible ${stage2_form_add_document_description_input_locator} | ||
631 | + input text to exist visible input ${stage2_form_add_document_description_input_locator} test2 | ||
632 | + click visible element ${stage2_form_add_document_close_description_btn_locator} | ||
633 | + capture page screenshot | ||
634 | + submit current visible popup | ||
635 | + capture page screenshot | ||
636 | + | ||
637 | +fix awards data in global Users variable | ||
638 | + [Arguments] ${username} | ||
639 | + [Documentation] Фікс для помилки "Resolving variable '${award.value.amount}' failed: AttributeError: value" | ||
640 | + | ||
641 | + :FOR ${user} IN @{USERS} | ||
642 | + \ continue for loop if '${user}' == '${username}' | ||
643 | + \ ${is_user_has_data} = run keyword and return status dictionary should contain key ${USERS.users} ${user} | ||
644 | + \ continue for loop if ${is_user_has_data} == ${False} | ||
645 | + \ ${user_data} = set variable ${USERS.users['${user}']} | ||
646 | + \ ${is_user_has_tender_data} = run keyword and return status dictionary should contain key ${user_data} tender_data | ||
647 | + \ continue for loop if ${is_user_has_tender_data} == ${False} | ||
648 | + \ ${status} ${award_data} = run keyword and ignore error get_from_object ${USERS.users['${user}'].tender_data.data} awards | ||
649 | + \ continue for loop if '${status}' != 'PASS' | ||
650 | + \ set to object ${USERS.users['${username}'].tender_data.data} awards ${award_data} | ||
651 | + \ exit for loop | ||
652 | + | ||
653 | +fill tender contact person | ||
654 | + [Arguments] ${data} | ||
655 | + [Documentation] заповнює відкриту форму згідно вказаних даних | ||
656 | + run keyword and ignore error open popup by btn locator ${tender_form_cp_edit_btn_locator} | ||
657 | + ${organization_name_en} = get from dictionary by keys ${data} procuringEntity name_en | ||
658 | + run keyword if condition is not none ${organization_name_en} input text to visible input ${tender_form_organization_name_en_input_locator} ${organization_name_en} | ||
659 | + ${contact_point_name_en} = get from dictionary by keys ${data} procuringEntity contactPoint name_en | ||
660 | + run keyword if condition is not none ${contact_point_name_en} input text to visible input ${tender_form_contact_point_name_en_input_locator} ${contact_point_name_en} | ||
661 | + submit current visible popup |
Please
register
or
login
to post a comment