def fSetUpCatTerm(): #---------------------------------------------------# time.sleep(1) logging.debug('- set up category terminology') # open general settings type("p",KeyModifier.ALT) type(Key.ENTER) time.sleep(1) # switch to Calendar Terminology myTools.pressF6(2) # category terminology type("1",KeyModifier.ALT) type("One") type(Key.TAB) type("Two") type(Key.TAB) type("Three") type(Key.TAB) type("Four") type(Key.TAB) type("Five") type(Key.TAB) type("Six") type(Key.TAB) type("Seven") type(Key.TAB) type("Eight") type(Key.TAB) type("Nine") type(Key.TAB) type("Ten") type(Key.ENTER)
def fHold_Time_NextBill_Hours(): #---------------------------------------------------# logging.debug('- Hold_Time_NextBill_Hours') # open Wakefield type("Wakefield") type(Key.ENTER) time.sleep(1) # move to page with Hold fields if int(Settings.tsVersion) > 2014: myTools.pressF6(5) else: myTools.pressF6(3) # move to Hold time charges if int(Settings.tsVersion) > 2014: myTools.pressTAB(3) else: myTools.pressTAB(6) time.sleep(1) # set to "on next bill" until 5 hours myTools.pressDOWN(1) myTools.pressTAB(2) type("5") # save time.sleep(1) type("s",KeyModifier.CTRL)
def fPrecision_Setup(): # - - - - - - - - - - - - - - - - - - - - - - - - - # myTools.sectionStartTimeStamp("ba Precision") logging.debug("ba Precision") # open client type("i", KeyModifier.CTRL) time.sleep(1) type("BA-Precision") type(Key.ENTER) time.sleep(1) # get to Rounding field if int(Settings.tsVersion) < 2015: myTools.pressF6(4) time.sleep(1) myTools.pressTAB(8) else: myTools.pressF6(7) time.sleep(1) myTools.pressTAB(7) time.sleep(1) type(Key.UP) # save and close type("s", KeyModifier.CTRL) type(Key.F4, KeyModifier.CTRL) time.sleep(1) type(Key.F4, KeyModifier.CTRL) myTools.sectionEndTimeStamp()
def fChange_ClientSettings(): #---------------------------------------------------# logging.debug('- Change_ClientSettings') myTools.getFocus() logging.debug('-- change a client') type("i",KeyModifier.CTRL) time.sleep(1) type(Key.ENTER) time.sleep(1) myTools.pressF6(4) if Settings.tsVersion > "2014": myTools.pressF6(3) time.sleep(1) myTools.pressTAB(3) time.sleep(1) type("my") logging.debug('-- save client') type("s",KeyModifier.CTRL) fExport_ClientSettings() fExport_TemplateSettings() time.sleep(1) type(Key.F4,KeyModifier.CTRL) type(Key.F4,KeyModifier.CTRL)
def fMoveto_BAPage(): #---------------------------------------------------# if int(Settings.tsVersion) > 2014: myTools.pressSHIFTF6(9) else: myTools.pressF6(3)
def fSetup_NewNamesDefault(): # ---------------------------------------------------# """ new names will inherit Layout setting from the Template client """ logging.debug("- open gen settings") type("p", KeyModifier.ALT) type("g") time.sleep(1) # get to New Names page myTools.pressF6(7) time.sleep(2) type("i", KeyModifier.ALT) type(Key.DOWN) # get to Layout field if int(Settings.tsVersion) > 2014: myTools.pressTAB(10) else: myTools.pressTAB(9) type("t") type(Key.ENTER)
def fEdit_TaskCustom(): #---------------------------------------------------# logging.debug(' - custom fields') # switch to custom fields myTools.pressF6(2) type(Key.TAB) # Date type("1/1/15") type(Key.TAB) # Hours type("101.01") type(Key.TAB) # List type("Construction") type(Key.TAB) # Money type("101.01") type(Key.TAB) time.sleep(1) # Number type("101.01") type(Key.TAB) # Percent type("101.01") type(Key.TAB) # Text type("Build Structure") type(Key.TAB) time.sleep(1)
def fMoveto_BAPage(): # ---------------------------------------------------# """ moves to the Arrangements page of Client Information """ if int(Settings.tsVersion) > 2014: myTools.pressSHIFTF6(9) else: myTools.pressF6(3)
def fSetup_PayDist(): # ---------------------------------------------------# myTools.sectionStartTimeStamp("setup pay dist") logging.debug("- set up pay dist") myTools.getFocus() # open client list type("i", KeyModifier.CTRL) time.sleep(2) # open Nahant type("n") type(Key.ENTER) time.sleep(1) # get to payment distribution fields if Settings.tsVersion > "2014": myTools.pressF6(8) time.sleep(1) myTools.pressTAB(6) time.sleep(1) else: myTools.pressF6(5) time.sleep(1) myTools.pressSHIFTTAB(7) time.sleep(1) # First Pay = Newest type("n") time.sleep(1) # Order = Costs/Fees/Int myTools.pressTAB(1) type("c") time.sleep(1) # First Pay = Charge Type myTools.pressTAB(1) type("c") time.sleep(1) # save type("s", KeyModifier.CTRL) time.sleep(1) fExport_ClientSettings() type(Key.F4, KeyModifier.CTRL) time.sleep(1) type(Key.F4, KeyModifier.CTRL) myTools.sectionEndTimeStamp()
def moveTo_NextTemplate(): #---------------------------------------------------# if int(Settings.tsVersion) < 2015: myTools.pressDOWN(1) time.sleep(1) type("o",KeyModifier.CTRL) else: myTools.pressF6(1) time.sleep(1)
def Setup_Discounts(): # - - - - - - - - - - - - - - - - - - - - - - - - - # logging.debug('Set Up Discounts') # make sure timeslips has focus myTools.getFocus() logging.debug('- change a client') type("i",KeyModifier.CTRL) time.sleep(1) type(Key.ENTER) time.sleep(1) myTools.pressF6(5) myTools.pressSHIFTTAB(10) time.sleep(1) type("10") type(Key.TAB) type("30") type(Key.TAB) myTools.pressDOWN(2) time.sleep(1) type("s", KeyModifier.CTRL) click("export_btn.png") time.sleep(1) type(Key.DELETE) type(Key.UP) type(Key.DOWN) type(Key.DOWN, KeyModifier.SHIFT) type(Key.DOWN, KeyModifier.SHIFT) type(Key.F4) time.sleep(1) type(Key.TAB) type(Key.INSERT) type(Key.TAB) type(Key.ENTER) time.sleep(1) type(Key.ENTER) wait("export_successful.png", FOREVER) type(Key.ENTER) type(Key.F4,KeyModifier.CTRL) time.sleep(1) type(Key.F4,KeyModifier.CTRL)
def fCreate_OneFinanceCharge(pClient,pCliNum,pMonth,pAmount): #---------------------------------------------------# logging.debug('- Create_OneFinance: ' + str(pMonth) + "-" + pClient + " = " + str(pAmount)) time.sleep(1) # choose client type(pClient) time.sleep(1) type(Key.ENTER) time.sleep(1) # switch page if Settings.tsVersion > "2014": myTools.pressF6(7) else: myTools.pressF6(4) time.sleep(1) # go to field if Settings.tsVersion > "2014": myTools.pressSHIFTTAB(4) else: myTools.pressSHIFTTAB(3) time.sleep(1) # set "next bill" type("ne") time.sleep(1) myTools.pressTAB(1) time.sleep(1) # enter finance charge type(pAmount) time.sleep(1) myTools.pressTAB(1) # description type("a",KeyModifier.CTRL) financeText = "Finance charge for: " + pClient + ": Month: " + str(pMonth) time.sleep(1) type(financeText) time.sleep(1) # save type("s",KeyModifier.CTRL) time.sleep(1) # close client info type(Key.F4,KeyModifier.CTRL) time.sleep(1)
def fSetup_LinkDetailsUnmarkWIP(): #---------------------------------------------------# type("a",KeyModifier.ALT) # set up accounting link time.sleep(1) type("s") time.sleep(1) myTools.pressF6(1) # method page time.sleep(1) myTools.pressTAB(3) # time WIP type(Key.SPACE) myTools.pressTAB(1) # expense WIP type(Key.SPACE) type(Key.ENTER) # OK time.sleep(1)
def fEnter_GeneralSettings(): #---------------------------------------------------# """ enter firm address, project separator, slips/trans IDs """ # wait for address info wait("address_info.png",60) # Firm name/address type(Key.TAB) type("239 Western Avenue") myTools.pressTAB(2) type("Essex") type(Key.TAB) type("MA") type(Key.TAB) type("01929") type(Key.TAB) type("USA") type(Key.TAB) type("508-768-6100") time.sleep(1) # project separator myTools.pressF6(6) time.sleep(1) type(".") # slips, a/r, funds IDs myTools.pressF6(5) time.sleep(1) type("10001") myTools.pressTAB(1) type("10001") myTools.pressTAB(1) type("10001") # close General settings type(Key.ENTER)
def fCreate_Jurisdictions(): #---------------------------------------------------# logging.debug('- Create_Jurisdiction') # move to jurisdictions myTools.pressF6(2) time.sleep(1) # new jurisdication for Zone 1 logging.debug('-- new jurisdictions') type("n",KeyModifier.ALT) time.sleep(1) type("o") myTools.pressTAB(1) type("Zone1") myTools.pressTAB(1) type("One") time.sleep(1) # OK type(Key.ENTER)
def fEdit_ExpenseCustom(): #---------------------------------------------------# logging.debug(' - custom fields') # switch to custom fields myTools.pressF6(2) type(Key.TAB) # Date type("12/1/16") type(Key.TAB) # Hours type("301.01") type(Key.TAB) # List type("Materials") type(Key.TAB) # Money type("301.01") type(Key.TAB) time.sleep(1) # Number type("301.01") type(Key.TAB) # Percent type("301.01") type(Key.TAB) # Text type("Hand Tools") type(Key.TAB) time.sleep(1)
def setupCustomSort(): #---------------------------------------------------# """ sets up custom sort Activity List; only used by fPrint_PreBill_2 """ logging.debug('- setupCustomSort') # switch to the Sort page myTools.pressF6(1) time.sleep(1) # remove sorts myTools.clickRemoveAll() # switch to the activity group myTools.pressSHIFTTAB(1) type("a") time.sleep(1) # choose Activity List myTools.pressTAB(1) myTools.pressDOWN(7) click("add_filter.png") time.sleep(1)
def fSetup_NewNamesDefault(): #---------------------------------------------------# logging.debug('- open gen settings') type("p",KeyModifier.ALT) type("g") time.sleep(1) # get to New Names page myTools.pressF6(7) time.sleep(2) type("i",KeyModifier.ALT) type(Key.DOWN) # get to Layout field if int(Settings.tsVersion) > 2014: myTools.pressTAB(10) else: myTools.pressTAB(9) type("t") type(Key.ENTER)
def setup_StatementTemplates(): #---------------------------------------------------# logging.debug('- edit statement template') myTools.pressF6(1) if int(Settings.tsVersion) < 2015: type("o",KeyModifier.CTRL) setup_StatementTemplate("Current") moveTo_NextTemplate() setup_StatementTemplate("Period1") moveTo_NextTemplate() setup_StatementTemplate("Period2") moveTo_NextTemplate() setup_StatementTemplate("Period3") moveTo_NextTemplate() setup_StatementTemplate("Period4")
def fEdit_InterestSetting(): #---------------------------------------------------# logging.debug('- edit interest setting') # switch to first client type(Key.PAGE_UP, KeyModifier.CTRL) # get to interest field if int(Settings.tsVersion) > 2014: myTools.pressSHIFTF6(9) myTools.pressTAB(9) else: myTools.pressF6(2) myTools.pressTAB(7) type("5") type("s", KeyModifier.CTRL) time.sleep(1) click(Pattern("export_button.png").targetOffset(0,8)) time.sleep(1) type(Key.DELETE) # interest rate myTools.pressDOWN(5) type(Key.F4) time.sleep(1) type(Key.TAB) type(Key.INSERT) type(Key.TAB) type(Key.ENTER) time.sleep(1) type("y") myTools.waitForExportSuccess()
def fSetUpEntryTerm(): #---------------------------------------------------# time.sleep(1) logging.debug('- set up entry terminology') # open general settings myTools.getFocus() type("p",KeyModifier.ALT) type(Key.ENTER) time.sleep(1) # switch to Calendar Terminology myTools.pressF6(2) # entry terminology type("Entry") type(Key.TAB) type("Entries") type(Key.TAB) time.sleep(1) type("Event") type(Key.TAB) type("Events") type(Key.TAB) time.sleep(1) type("TooDoo") type(Key.TAB) type("TooDoo") type(Key.TAB) time.sleep(1) type("Type") type(Key.TAB) type("Types") time.sleep(1) type(Key.ENTER)
def fSlipsRoundDol_Setup(): # - - - - - - - - - - - - - - - - - - - - - - - - - # myTools.sectionStartTimeStamp("ba RoundDollars") logging.debug("ba RoundDollars") # open client type("i",KeyModifier.CTRL) time.sleep(1) type("BA-RoundDol") type(Key.ENTER) time.sleep(1) # get to Rounding field if int(Settings.tsVersion) < 2015: myTools.pressF6(4) time.sleep(1) myTools.pressTAB(6) else: myTools.pressF6(7) time.sleep(1) myTools.pressTAB(5) time.sleep(1) type("5") type(Key.TAB) type("u") # save and close type("s",KeyModifier.CTRL) type(Key.F4,KeyModifier.CTRL) time.sleep(1) type(Key.F4,KeyModifier.CTRL) myTools.sectionEndTimeStamp()
def fStartTS_CreateNewDB(): #---------------------------------------------------# myTools.sectionStartTimeStamp("new db") logging.debug('StartTS_CreateNewDB') popup("make sure Timeslips is closed") fDelete_DataFolder() fStart_TS() fCheckFor_PEP() # start the new db process logging.debug('- Check for database') time.sleep(3) if exists("database_not_found.png"): logging.debug('-- TS2014 db not found') type(Key.ENTER) time.sleep(2) type("n") elif exists("fb_encountered_error.png"): logging.debug('-- TS2016 db not found') type(Key.ENTER) time.sleep(2) type("n") else: logging.debug('-- db found') if exists("supervisor.png"): type(Key.ENTER) time.sleep(1) fCheckFor_Sample() fCheckFor_PEP() fCheckFor_BillingDate() fCheckFor_SPS() time.sleep(1) # File > New > Database logging.debug('- create new database') type("f",KeyModifier.ALT) type("n") type("d") time.sleep(1) # Empty database, press Next type("n",KeyModifier.ALT) # For TS2016, choose Local, press Next if int(Settings.tsVersion) > 2015: myTools.pressDOWN(1) type("n",KeyModifier.ALT) # new db path and settings logging.debug('- enter path') type(Settings.dbFolder) type(Key.ENTER) # Firm name type("TS Handyman Services") type(Key.ENTER) logging.debug('- db settings') # Decimals time.sleep(1) type(Key.ENTER) # set Fiscal month to July myTools.pressDOWN(6) type(Key.ENTER) # starting invoice number type("12345") type(Key.ENTER) # bill with firm heading myTools.pressDOWN(2) # mark cover page type(Key.TAB,KeyModifier.SHIFT) type(Key.SPACE) time.sleep(1) type(Key.ENTER) # click("do_not_use_tal.png") time.sleep(1) type(Key.ENTER) # unmark outlook type(Key.SPACE) time.sleep(1) type(Key.ENTER) # Ready to Create Your Database time.sleep(1) type(Key.ENTER) # Wait for db to be created wait("finish.png",FOREVER) # press Finish type(Key.ENTER) time.sleep(1) # wait for address info wait("address_info.png",60) # Firm name/address type(Key.TAB) type("239 Western Avenue") myTools.pressTAB(2) type("Essex") type(Key.TAB) type("MA") type(Key.TAB) type("01929") type(Key.TAB) type("USA") type(Key.TAB) type("508-768-6100") time.sleep(1) # project separator myTools.pressF6(6) time.sleep(1) type(".") # close General settings type(Key.ENTER) # getting started logging.debug('- getting started wiz') wait("enter_your_name.png",FOREVER) type("Xander Yakuza Zork") type(Key.TAB) time.sleep(1) type(Key.ENTER) type("XanderZ") type(Key.TAB) type("XZork") type("f",KeyModifier.ALT) # backup time.sleep(1) if exists("backup_database.png"): click("no_btn.png") time.sleep(1) type("n") fCheckFor_BillingDate() fCheckFor_SPS() fCheckFor_PEP() myTools.sectionEndTimeStamp() backup_Data.fBackup_Checkpoint("new")
def fExport_Timekeepers(): #---------------------------------------------------# logging.debug('- Export Timekeepers') # open client info type("i", KeyModifier.CTRL) time.sleep(1) type(Key.ENTER) time.sleep(1) if int(Settings.tsVersion) > 2014: myTools.pressF6(4) myTools.pressTAB(2) else: type(Key.F6) myTools.pressTAB(3) type(Key.RIGHT) # enter custom field values type(Key.TAB) type("t") type(Key.TAB) type("20") type(Key.TAB) type("c") type(Key.TAB) type("10") type(Key.TAB) type("j") type(Key.TAB) type("5") type("s", KeyModifier.CTRL) wait("export_btn.png") click("export_btn.png") time.sleep(1) if int(Settings.tsVersion) > 2014: type(Key.DOWN) # sometimes a keypress is needed to make INS work else: type(Key.DELETE) myTools.pressDOWN(8) type(Key.DOWN, KeyModifier.SHIFT) type(Key.DOWN, KeyModifier.SHIFT) type(Key.F4) time.sleep(1) type(Key.TAB) type(Key.INSERT) type(Key.TAB) type(Key.ENTER) time.sleep(1) type(Key.ENTER) myTools.waitForExportSuccess() type(Key.F4,KeyModifier.CTRL) time.sleep(1) type(Key.F4,KeyModifier.CTRL)
def fTweak_Prefs(): #---------------------------------------------------# myTools.sectionStartTimeStamp("preferences") logging.debug('fTweak_Prefs') # make sure timeslips has focus myTools.getFocus() logging.debug('- open preferences') type("p",KeyModifier.ALT) type("p") time.sleep(1) # click Default button type("d",KeyModifier.ALT) type(Key.ENTER) time.sleep(1) # Interface: Startup # unmark date check type(Key.SPACE) # Interface: Appearance myTools.pressF6(3) time.sleep(1) logging.debug('- clear window settings') type("a",KeyModifier.ALT) type(Key.ENTER) time.sleep(1) # Interface: Nav Rules myTools.pressSHIFTF6(2) time.sleep(1) # Update Rates type("u",KeyModifier.ALT) time.sleep(1) # Slips: New Slip Rules if int(Settings.tsVersion) < 2014: myTools.pressF6(6) else: myTools.pressF6(8) click(Pattern("dates_extra_chk.png").targetOffset(-118,-1)) time.sleep(1) # spelling if int(Settings.tsVersion) < 2014: myTools.pressF6(6) else: myTools.pressF6(5) type("m") type(Key.TAB) type("m") time.sleep(1) # save type("s",KeyModifier.ALT) prefsFile = Settings.tsFolder + "\\" + Settings.tsVersion + ".prf" time.sleep(1) type(prefsFile) type(Key.ENTER) # close time.sleep(1) type(Key.ENTER) myTools.sectionEndTimeStamp()