def user_details(target_id, first_name, last_name, a=1): browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=People&SSF=-134') create_new_person_button = browser.find_element_by_xpath( '//*[@id="btnNewLink"]') create_new_person_button.click() time.sleep(3) id_field = browser.find_element_by_id('StdSf_62_UserName_txt') id_field.clear() id_field.send_keys(target_id) fname_field = browser.find_element_by_id('StdSf_62_FirstName_txt') fname_field.clear() fname_field.send_keys(first_name) lname_field = browser.find_element_by_id('StdSf_62_LastName_txt') lname_field.clear() lname_field.send_keys(last_name) ignore_wdt = browser.find_element_by_id('StdSf_62_OverrideWorkDay_chk') ignore_wdt.click() ignore_wd_termination = browser.find_element_by_id( 'StdSf_62_IgnoreWorkDayTermination_chk') ignore_wd_termination.click() access_flag = int(a) if access_flag == 1: access_food_safety = browser.find_element_by_id( 'StdSf_62_Food_Safety_chk') access_food_safety.click() save_initial = browser.find_element_by_id('liSave') save_initial.click() time.sleep(5) browser.switch_to.alert.accept() time.sleep(1)
def nav_wo_record(target_id): record_link = \ 'https://sysco.sprocketcmms.com/Default.aspx?screen=Work%20Order%20Details&InstanceName={}'.format(target_id) browser.get(record_link) time.sleep(3) inspection_tab = browser.find_element_by_id('liInspection') inspection_tab.click()
def add_safety(target_user, a): browser.implicitly_wait(10) browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=People&SSF=-134') search_box = browser.find_element_by_link_text('Search') search_box.click() user_name_field = browser.find_element_by_id('UserName_txt0') user_name_field.clear() user_name_field.send_keys(target_user) start_search = browser.find_element_by_id('SearchScreenBtnSearch') start_search.click() browser.find_element_by_link_text(target_user).click() time.sleep(3) if int(a) == 1: print('Flagging OverrideWorkDay') ignore_wdt = browser.find_element_by_id('StdSf_62_OverrideWorkDay_chk') ignore_wdt.click() groups_tab = browser.find_element_by_id('liGroups') time.sleep(3) groups_tab.click() add_group = browser.find_element_by_id('txt_Group') add_group.send_keys('Data-FSY') submit_group = browser.find_element_by_xpath( '//*[@id="divGroups"]/table/tbody/tr[1]/td[2]/input[2]') submit_group.click() time.sleep(1) save_exit = browser.find_element_by_link_text('Save') save_exit.click() time.sleep(3) browser.switch_to.alert.accept()
def find_schedule(schedule, location_based=0): browser.implicitly_wait(10) if location_based == 0: browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=PM%20Projects&SSF=-108' ) print('---> Loading Equipment Based View') elif location_based == 1: browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=PM%20Projects&SSF=244' ) print('---> Loading Location Based View') else: print( '--->!! Value outside of defined parameters\nlocation_based=0\nor\nlocation_based=1' ) project_link = schedule time.sleep(1) search_link = browser.find_element_by_link_text('Search') time.sleep(1) search_link.click() pm_number_field = browser.find_element_by_id('PMNumber_txt3') pm_number_field.clear() pm_number_field.send_keys(schedule) search_button = browser.find_element_by_id('SearchScreenBtnSearch') search_button.click() time.sleep(1) browser.find_element_by_partial_link_text(project_link).click()
def update_item_price( target_agreement, item_id, item_price, ): browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=Vendor%20Purchase%20Agreements' ) parent_vpa = browser.find_element_by_link_text(target_agreement) parent_vpa.click() items_tab = browser.find_element_by_id('liItems') items_tab.click() search_id = browser.find_element_by_id( 'ajaxReport_itemsReport_promptsdivContainer_0_input') search_id.clear() search_id.send_keys(item_id) id_search_button = browser.find_element_by_xpath( '/html/body/form/div[3]/div[3]/div[2]/div/div[2]/div/div[1]/input') id_search_button.click() time.sleep(1) get_edit = browser.find_element_by_link_text('Edit') get_edit.click() price_field = browser.find_element_by_id('StdSf581_Price_txt') price_field.clear() price_field.send_keys(item_price) save_button = browser.find_element_by_xpath( '/html/body/form/div[3]/div[3]/div[3]/div[3]/input[1]') save_button.click() time.sleep(1) print('VPA {} item {} price updated to {}'.format(target_agreement, item_id, item_price))
def create_vpa(y, y_description, y_vendor_id, y_date, y_expire, PreferredVendor=1): browser.get('https://sysco.sprocketcmms.com/Default.aspx?screen=Vendor%20Purchase%20Agreements') vpa_new_button = browser.find_element_by_xpath('//*[@id="btnNewLink"]') time.sleep(1) vpa_new_button.click() name_field = browser.find_element_by_id('StdSf580_Name_txt') name_field.send_keys(y) description_field = browser.find_element_by_id('StdSf580_Description_txt') description_field.send_keys(y_description) vendor_id_field = browser.find_element_by_id('StdSf580_VendorID_txt') vendor_id_field.send_keys(y_vendor_id) start_date_field = browser.find_element_by_id('StdSf580_StartDate_txt') start_date_field.send_keys(y_date) end_date_field = browser.find_element_by_id('StdSf580_EndDate_txt') end_date_field.send_keys(y_expire) preferred_vendor_check = browser.find_element_by_id('StdSf580_PreferredVendor_chk') if PreferredVendor == 1: preferred_vendor_check.click() time.sleep(1) browser.find_element_by_link_text('Save').click() time.sleep(1) browser.find_element_by_link_text('Exit').click() else: browser.find_element_by_link_text('Save').click() time.sleep(1) browser.find_element_by_link_text('Exit').click()
def find_main(main_target): browser.get('https://sysco.sprocketcmms.com/Default.aspx?screen=Inspection%20Manager') search_box = browser.find_element_by_id('liSearch') search_box.click() search_by_name = browser.find_element_by_id('Inspection_Name_txt1') search_by_name.clear() search_by_name.send_keys(main_target) submit_search = browser.find_element_by_id('SearchScreenBtnSearch') submit_search.click() time.sleep(2)
def search_equip(unit): browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=Equipment&SSF=-102' ) equip_search = browser.find_element_by_id('liSearch') equip_search.click() equip_field = browser.find_element_by_id('Equipment_txt4') equip_field.clear() equip_field.send_keys(unit) submit_button = browser.find_element_by_id('SearchScreenBtnSearch') submit_button.click() time.sleep(1)
def archive_item(inventoryItemId): browser.implicitly_wait(60) base_url = 'https://sysco.sprocketcmms.com/Default.aspx?screen=Inventory%20Item&InstanceName=' target_item_url = '{}{}'.format(base_url, inventoryItemId) browser.get(target_item_url) time.sleep(5) archive_chk_box = browser.find_element_by_id('StdSf12_Archived_chk') archive_chk_box.click() save_archive = browser.find_element_by_id('liSave') save_archive.click() time.sleep(5) browser.find_element_by_id('liExit').click() time.sleep(5)
def device_search(old_value): browser.get('https://sysco.sprocketcmms.com/Default.aspx?screen=Devices') search_button = browser.find_element_by_id('liSearch') search_button.click() device_id_search_field = browser.find_element_by_id( 'Device_Identifier_txt0') device_id_search_field.clear() device_id_search_field.send_keys(old_value) start_search = browser.find_element_by_id('SearchScreenBtnSearch') start_search.click() time.sleep(1) record_link = browser.find_element_by_link_text(old_value) record_link.click() time.sleep(1)
def equipment_page(unit): # Find and select Equipment browser.implicitly_wait(15) browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=Equipment&SSF=-102' ) search_field = browser.find_element_by_link_text('Search') search_field.click() equip_search = browser.find_element_by_id('Equipment_txt4') equip_search.clear() equip_search.send_keys(unit) searchButton = browser.find_element_by_id('SearchScreenBtnSearch') searchButton.click() time.sleep(5) unit_link = browser.find_element_by_link_text(unit) unit_link.click()
def gen_number(unit_description, location, equipment_type, department, manufacturer, inventory_number, start_date, gb_fuel_type, equipment_system): browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=Equipment&SSF=-102' ) time.sleep(1) new_equip_button = browser.find_element_by_id('btnNewLink') new_equip_button.click() field_id = browser.find_element_by_id('StdSf_70_EquipmentIdentifier_txt') field_id.send_keys('AUTONUMBER') desc_field = browser.find_element_by_id('StdSf_70_Description_txt') desc_field.send_keys(unit_description) location_field = browser.find_element_by_id('StdSf_70_LocationID_txt') location_field.send_keys(location) type_field = browser.find_element_by_id('StdSf_70_EquipmentTypeID_txt') type_field.send_keys(equipment_type) dept_field = browser.find_element_by_xpath( '//*[@id="StdSf_70_Div1"]/p[8]/div/input') dept_field.send_keys(department) man_field = browser.find_element_by_id('StdSf_70_Manufacturer_txt') man_field.send_keys(manufacturer) inv_field = browser.find_element_by_id('StdSf_70_InventoryNumber_txt') inv_field.send_keys(inventory_number) start_date_field = browser.find_element_by_id('StdSf_70_DateInService_txt') start_date_field.send_keys(start_date) gb_type_field = browser.find_element_by_xpath( '//*[@id="StdSf_70_Div3"]/p[12]/div/input') gb_type_field.send_keys(gb_fuel_type) equip_sys_field = browser.find_element_by_id( 'StdSf_70_EquipmentSystemID_txt') equip_sys_field.send_keys(equipment_system) browser.find_element_by_link_text('Save').click() time.sleep(3)
def add_item(target_agreement, item_id, item_price, status, vendor_id): browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=Perform%20Inspection&ID=43579&InstanceName=43579' ) target_vpa = browser.find_element_by_id('question_4881136') target_vpa.send_keys(target_agreement) product_id = browser.find_element_by_id('question_4881132') product_id.send_keys(item_id) price_field = browser.find_element_by_id('question_4881133') price_field.send_keys(item_price) purchase_status_field = browser.find_element_by_id('question_4881134') purchase_status_field.send_keys(status) vendor_id_field = browser.find_element_by_id('question_4881135') vendor_id_field.send_keys(vendor_id) is_true_field = browser.find_element_by_id('question_4881137') is_true_field.send_keys('TRUE') submit_btn = browser.find_element_by_id( 'ctl00_MainPage_PerformInspection_43579_submit') submit_btn.click() time.sleep(1) print('-----> {} added'.format(item_id))
fsi_target_sch = 'FSI-Quarterly Consolidated' monthly_site_code = monthly_fsi_site fsi_monthly_start = monthly_fsi_start fsi_monthly_name = '{} {}'.format(monthly_site_code, fsi_target_sch) fsi_location = '{}-BLDA'.format(monthly_site_code) daily_frequency = monthly_frequency fsi_page_one(fsi_monthly_name, fsi_monthly_start, sch_on_comp_flag=0) fsi_page_two(fsi_location, set=1) fsi_page_three(fsi_monthly_name, fsi_monthly_start, daily_frequency, day_dropdown='Monthly', set=0, week_day=3) fsi_page_four(fsi_target_sch) print('{} Created'.format) mw_sites = [] browser.implicitly_wait(30) login(bot1, password) target_site_code = mw_sites[10] target_start_daily = '09072020' target_start_weekly = '09062020' target_start_monthly = '09072020' set_site(target_site_code) browser.get('https://sysco.sprocketcmms.com/Default.aspx?screen=PM%20Projects&SSF=244') create_fsi_daily(target_site_code, target_start_daily) create_fsi_weekly(target_site_code, target_start_weekly) create_fsi_monthly(target_site_code, target_start_monthly, monthly_frequency=1) # Quarterly variant of Monthly create_fsi_monthly(target_site_code, target_start_monthly, monthly_frequency=3)
import requests import lxml import re from bs4 import BeautifulSoup import time from spBot_Core.BotLogin import set_site, login, browser from spBot_Core.secrets import bot1, bot2, bot3, bot4, bot5, bot6, password login(bot2, password) set_site('102') page = browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=New%20Equipment&InstanceName=203069' ) war_tab = browser.find_element_by_id('liWarranty') war_tab.click() time.sleep(3) html = browser.page_source soup = BeautifulSoup(html, 'lxml') #war = soup.tbody.td.find_all_next(string=True) war = soup.find(id='divWarranties') #war_anchor = soup.find_all('tr', {'class': re.compile('evenRow')}) for i in war: children = i.findChildren('a', recursive=True) for child in children: info = child.text print(info) #print(war)
while x <= counter: try: x += 1 set_site(target_site[x]) print('{} of {}\nUnit-{}\nSiteCode-{}'.format(x, counter, unit[x], target_site[x])) set_site(target_site[x]) search_equip(unit[x]) clear_oos_field(unit[x]) print('Success!----->\n Moving to Next----->') except IndexError: print('Script Complete!') break except Exception as b: print('!!!Error!!!\nEquipment {} @ Site {}\n{}'.format( unit[x], target_site[x], b)) try: browser.switch_to.alert.accept() browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=Equipment&SSF=-102' ) continue except Exception as c: print( 'Bad Equipment Data Import -------> GasBoy Type Or Date In Service Missing' ) continue browser.quit()
from spBot_Core.BotLogin import set_site, login, browser from spBot_Core.secrets import bot1, bot2, bot3, bot4, bot5, bot6, password from selenium.webdriver.support.select import Select login(bot1, password) browser.implicitly_wait(30) target_file = 'docs_to_load.csv' col_names = ['unit', 'target_site', "target_url"] data = pandas.read_csv(target_file, names=col_names) unit = data.unit.tolist() target_site = data.target_site.tolist() target_url = data.target_url.tolist() counter = len(unit) x = 0 while x <= counter: try: x += 1 set_site(target_site[x]) target_inspection = \ 'https://sysco.sprocketcmms.com/Default.aspx?screen=Perform%20Inspection&ID=43575&InstanceName=43575' browser.get(target_inspection) question_equipment_id = browser.find_element_by_id('question_4880706') question_equipment_id.send_keys(unit[x]) except: break
# Set iteration variables x = 0 counter = len(site) # Create Options Loop while x <= counter: x = x + 1 try: # Change Site set_site(site[x]) name = '{} {} Freight'.format(site[x], model[x]) # Open Page browser.get('https://sysco.sprocketcmms.com/Default.aspx?screen=Equipment%20Options') time.sleep(5) # Create Option browser.find_element_by_id('btnNewLink').click() browser.find_element_by_id('StdSf524_Name_txt').send_keys(name) browser.find_element_by_id('StdSf524_Description_txt').send_keys(name) browser.find_element_by_id('StdSf524_VendorID_txt').send_keys(vendor[x]) time.sleep(1) browser.find_element_by_link_text('Save').click() time.sleep(3) browser.find_element_by_link_text('Exit').click() browser.get('https://sysco.sprocketcmms.com/Default.aspx?screen=Equipment%20Models') time.sleep(1) # Attach option to Model
search_button = browser.find_element_by_id('liSearch') search_button.click() product_id_field_search = browser.find_element_by_id( 'Product_Identifier_txt0') product_id_field_search.clear() product_id_field_search.send_keys(inv_id) search_button = browser.find_element_by_id('SearchScreenBtnSearch') search_button.click() time.sleep(3) def update_record(inv_id, oem_num, sds_bol): browser.find_element_by_link_text(inv_id).click() time.sleep(1) edit_button = browser.find_element_by_id('btnEditRequest') edit_button.click() oem_field = browser.find_element_by_id('StdSf12_OEMNumber_txt') oem_field.clear() oem_field.send_keys(oem_num) select1 = Select(browser.find_element_by_id('StdSf12_SDS_txt')) select1.select_by_visible_text(sds_bol) login(bot1, password) set_site('Global Site Code') browser.get( 'https://sysco.sprocketcmms.com/Default.aspx?screen=Inventory%20Items&SSF=72' ) search_id('406012') update_record('406122', '406122', 'True')