def fPrint_FlatFee(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print FlatFee")

    # name report file: ex: ARAgedBal-03
    reportName = myTools.buildRepName("FlatFee",pRepExt)    
    logging.debug('Print_FlatFee: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report')
    type("r",KeyModifier.ALT)
    type("c")
    time.sleep(1)
    type("f")
    time.sleep(1)

    # move to Print To and choose CSV
    myTools.pressSHIFTTAB(2)
    time.sleep(1)
    type("c")

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def fPrint_InvoiceListing(pReportMonth, pRepExt):
    # ---------------------------------------------------#

    myTools.sectionStartTimeStamp("print invoicelist")

    # name report file: ex: UDSlip1-03
    reportName = myTools.buildRepName("InvList", pRepExt)
    logging.debug("Print_InvoiceList: " + reportName)
    myTools.getFocus()

    logging.debug("- open report list")
    type("r", KeyModifier.ALT)
    type("a")
    time.sleep(1)

    logging.debug("- choose report")
    type("i")
    time.sleep(1)

    # choose txt
    myTools.pressSHIFTTAB(2)
    time.sleep(1)
    type("t")
    time.sleep(1)

    myTools.enterYearToDateOnList(pReportMonth)

    # print the report
    type(Key.ENTER)
    time.sleep(1)

    myTools.finishReport(reportName)
def fPrint_ARwRunBal(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print ARwRunBal")

    # name report file: ex: UDSlip1-03
    reportName = myTools.buildRepName("ARwRunBal",pRepExt)
    logging.debug('fPrint_ARwRunBal: ' + reportName)
    myTools.getFocus()

    logging.debug('- open report list')
    type("r",KeyModifier.ALT)
    type("a")
    time.sleep(1)

    logging.debug('- choose report')
    myTools.pressDOWN(2)
    time.sleep(1)

    # choose txt
    myTools.pressSHIFTTAB(2)
    time.sleep(1)
    type("t")
    time.sleep(1)

    myTools.enterCurrentMonthOnList(pReportMonth)

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def fPrint_FeeAllocPer(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print FeeAllocPer")

    # name report file: ex: PreBill-03
    reportName = myTools.buildRepName("FeeAllocPer",pRepExt)
    logging.debug('Print_FeeAllocPer: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open FeeAllocPer')
    type("r",KeyModifier.ALT)
    type("t")
    time.sleep(1)
    myTools.pressDOWN(3)
    time.sleep(1)    

    # choose csv
    myTools.pressSHIFTTAB(2)
    type("c")
    time.sleep(1)

    myTools.enterCurrentMonthOnList(pReportMonth)

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def Print_TkCC(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print tkcc")

    # name report file: ex: TkCC-03
    reportName = myTools.buildRepName("TkCC",pRepExt)
    logging.debug('Print_TkCC: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report')
    type("r",KeyModifier.ALT)
    type("t")
    time.sleep(2)   
    type("timekeeper cont")    
    time.sleep(1)
    myTools.pressDOWN(1)
    time.sleep(1)
    type("o",KeyModifier.CTRL)
    time.sleep(1)

    logging.debug('- default options')

    # options button
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)
    
    # default button   
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)

    # show client breakdown   
    myTools.pressTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # close dialog
    type(Key.ENTER)
    time.sleep(1)   

    logging.debug('- print report')

    # move to Print To and choose CSV
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    if pReportMonth != 13:
        Filter_SplitClients()

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def fPrint_AgedClient(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print AgedClient")

    # name report file: ex: PreBill-03
    reportName = myTools.buildRepName("AgedClient",pRepExt)
    logging.debug('Print_AgedClient: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open PayPerf')
    type("r",KeyModifier.ALT)
    type("c")
    time.sleep(1)
    myTools.pressDOWN(1)
    time.sleep(1)
    
    logging.debug('- set up report')
    type("o",KeyModifier.CTRL)
    
    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Show hours
    myTools.pressTAB(10)
    type(Key.SPACE)
    time.sleep(1)

    # Show Adjustment columns
    myTools.pressTAB(1)
    type(Key.SPACE)
    time.sleep(1)

    # OK
    type(Key.ENTER)
    time.sleep(1)

    # choose csv
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    myTools.enterSlipFilter(pReportMonth,"yy")

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def Print_GLXfer(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print glxfer")

    # name report file: ex: TkCC-03
    reportName = myTools.buildRepName("GLXfer",pRepExt)
    logging.debug('Print_GLXfer: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report')
    type("a",KeyModifier.ALT)
    type("g")
    time.sleep(1)

    logging.debug('- default options')

    # options button
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)
    
    # default button   
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)

    # trans types 
    myTools.pressTAB(4)
    type(Key.ENTER)
    time.sleep(1)

    # remove transfer since they were wrong before ts2016
    type("t")
    time.sleep(1)
    type(Key.SPACE)
    time.sleep(1)
    type(Key.ENTER)

    # close dialog
    myTools.pressSHIFTTAB(3)
    type(Key.ENTER)
    time.sleep(1)   

    logging.debug('- print report')

    # move to Print To and choose CSV
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def Print_SlipTotalsWeekly(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("slip totals")

    # name report file: ex: PayDistr-03
    reportName = myTools.buildRepName("SlipTot",pRepExt)
    logging.debug('Print_SlipTotalsWeekly: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report')
    type("r",KeyModifier.ALT)
    type("s")
    time.sleep(2)
    
    type("w")
    time.sleep(1)
    
    type("o",KeyModifier.CTRL)
    time.sleep(1)

    logging.debug('- default options')

    # switch to CSV
    myTools.pressSHIFTTAB(2)
    time.sleep(1)
    type("c")    

    # options button
    myTools.pressSHIFTTAB(2)
    type(Key.ENTER)
    time.sleep(1)
    
    # default button   
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)

    # Include totals
    myTools.pressTAB(8)
    time.sleep(1)
    type(Key.SPACE)
    
    # OK
    type(Key.ENTER)
    time.sleep(1)

    myTools.enterSlipFilter(pReportMonth,"y")

    logging.debug('- print report')

    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def print_SlipSummary(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print SlipSummary")

    # name report file: ex: SlipSumm-03
    reportName = myTools.buildRepName("SlipSumm",pRepExt)
    logging.debug('Print_SlipSumm: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report list')
    type("r",KeyModifier.ALT)
    type("s")
    time.sleep(1)
    
    logging.debug('- set up report')
    type("slip s")
    time.sleep(1)
    type("o",KeyModifier.CTRL)
    time.sleep(1)

    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # exclude analysis info
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)  

    # OK
    myTools.pressTAB(5)
    type(Key.SPACE)
    time.sleep(1)

    # choose CSV
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def Print_FeeAlloc(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print fee alloc")

    # name report file: ex: FeeAlloc-03
    reportName = myTools.buildRepName("FeeAlloc",pRepExt)
    logging.debug('Print_FeeAlloc: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report')
    type("r",KeyModifier.ALT)
    type("t")
    time.sleep(2)
    
    type("fee")    
    time.sleep(1)
    
    type("o",KeyModifier.CTRL)
    time.sleep(1)

    logging.debug('- default options')

    # options button
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)
    
    # default button   
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)

    # close dialog
    myTools.pressTAB(1)
    type(Key.ENTER)
    time.sleep(1)   

    logging.debug('- print report')

    # move to Print To and choose CSV
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def fPrint_PreBill_1(pReportMonth,pRepExt):
#---------------------------------------------------#
    """ 
    print pre-bill 1
    - use myTools.enterSlipFilter for slip filter thru current month 
    - default sorts
    - default options
    """
    
    myTools.sectionStartTimeStamp("print PreBill 1")

    # name report file: ex: PreBill-03
    reportName = myTools.buildRepName("PreBill",pRepExt)
    logging.debug('Print_PreBill: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open worksheet')
    type("b",KeyModifier.ALT)
    type("p")    
    time.sleep(1)
    
    logging.debug('- set up worksheet')
    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # OK
    myTools.pressTAB(1)
    type(Key.SPACE)
    time.sleep(1)

    # choose text
    myTools.pressTAB(2)
    type("t")
    time.sleep(1)

    myTools.enterSlipFilter(pReportMonth,"n")

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def fPrint_AgedInv(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print AgedInv")

    # name report file: ex: PreBill-03
    reportName = myTools.buildRepName("AgedInv",pRepExt)
    logging.debug('Print_AgedInv: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open AgedInv')
    type("r",KeyModifier.ALT)
    type("c")
    time.sleep(1)
    myTools.pressDOWN(2)
    time.sleep(1)
    
    logging.debug('- set up report')
    type("o",KeyModifier.CTRL)
    
    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Due values
    myTools.pressSHIFTTAB(4)
    type("d")
    time.sleep(1)

    # OK
    type(Key.ENTER)
    time.sleep(1)

    # choose csv
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def print_ProdPeriod(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print ProdPer")

    # name report file: ex: ProdPer-03
    reportName = myTools.buildRepName("ProdPer",pRepExt)
    logging.debug('Print_ProdPeriod: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report list')
    type("r",KeyModifier.ALT)
    type("s")
    time.sleep(1)
    
    logging.debug('- set up report')
    type("prod")
    time.sleep(1)
    type("o",KeyModifier.CTRL)
    time.sleep(1)

    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # OK
    myTools.pressTAB(1)
    type(Key.SPACE)
    time.sleep(1)

    # choose CSV
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    myTools.enterSlipFilter(pReportMonth,"y")

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def fPrint_FirmAssTot(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print FirmAssTot")

    # name report file: ex: PreBill-03
    reportName = myTools.buildRepName("FirmAssTot",pRepExt)
    logging.debug('Print_FirmAssTot: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open FirmAssTot')
    type("r",KeyModifier.ALT)
    type("b")
    time.sleep(1)
    type("f")
    myTools.pressDOWN(1)
    time.sleep(1)
    
    logging.debug('- set up report')
    type("o",KeyModifier.CTRL)
    
    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # OK
    myTools.pressTAB(1)
    type(Key.SPACE)
    time.sleep(1)

    # choose text
    myTools.pressTAB(2)
    type("t")
    time.sleep(1)

    myTools.enterSlipFilter(pReportMonth,"n")

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def print_DaysToPay(pReportMonth, pRepExt):
    # ---------------------------------------------------#

    myTools.sectionStartTimeStamp("print daystopay")

    # name report file: ex: DaysToPay-03
    reportName = myTools.buildRepName("DaysToPay", pRepExt)
    logging.debug("Print_DaysToPay: " + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug("- open report")
    type("r", KeyModifier.ALT)
    type("a")
    time.sleep(2)
    type("d")
    time.sleep(1)
    type("o", KeyModifier.CTRL)
    time.sleep(1)

    logging.debug("- default options")

    # options button
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)

    # default button
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)

    # close dialog
    myTools.pressTAB(1)
    type(Key.ENTER)
    time.sleep(1)

    logging.debug("- print report")

    # move to Print To and choose CSV
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    # print the report
    type(Key.ENTER)
    time.sleep(1)

    myTools.finishReport(reportName)
def Print_Taxes(pReportMonth, pRepExt):
    # ---------------------------------------------------#

    myTools.sectionStartTimeStamp("print taxes")

    # name report file: ex: Hold-03
    reportName = myTools.buildRepName("Taxes", pRepExt)
    logging.debug("Print_Taxes: " + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug("- open report list")
    type("r", KeyModifier.ALT)
    type("x")
    time.sleep(1)

    logging.debug("- set up taxes collection report")
    type("tax c")
    time.sleep(1)
    type("o", KeyModifier.CTRL)
    time.sleep(1)

    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # OK
    myTools.pressTAB(1)
    type(Key.SPACE)
    time.sleep(1)

    # choose CSV
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    # print the report
    type(Key.ENTER)
    time.sleep(1)

    myTools.finishReport(reportName)
def fPrint_ClientInfo(pReportName):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print clients")

    logging.debug('fPrint_ClientInfo: ' + pReportName)

    # make sure timeslips has focus
    myTools.getFocus()
    
    logging.debug('- open report list')
    type("r",KeyModifier.ALT)
    type("c")    
    time.sleep(1)
    
    logging.debug('- set up client info listing')
    type("client info")    
    time.sleep(1)
    type("o",KeyModifier.CTRL)
    time.sleep(1)

    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # hide a/r fields
    myTools.pressSHIFTTAB(5)
    type(Key.SPACE)
    time.sleep(1)

    # OK
    myTools.pressTAB(6)
    type(Key.SPACE)
    time.sleep(1)

    # choose CSV
    myTools.pressTAB(2)
    type("c")    
    type(Key.ENTER)
    time.sleep(1)

    myTools.finishReport(pReportName)
def fPrint_Funds(pReportName):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print funds")
    logging.debug('fPrint_Funds: ' + pReportName)

    # make sure timeslips has focus
    myTools.getFocus()
    
    logging.debug('- open report list')
    type("r",KeyModifier.ALT)
    type("f")    
    time.sleep(1)
    
    logging.debug('- set up funds account listing')
    type("funds")    
    time.sleep(1)
    type("o",KeyModifier.CTRL)
    time.sleep(1)

    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # show all fields
    myTools.pressSHIFTTAB(3)
    type(Key.SPACE)
    time.sleep(1)   

    # OK
    myTools.pressTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # choose CSV
    myTools.pressTAB(2)
    type("c")    
    type(Key.ENTER)
    time.sleep(1)

    myTools.finishReport(pReportName)
def fPrint_FundsBal(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print fundsbal")

    # name report file: ex: TkCC-03
    reportName = myTools.buildRepName("FundsBal",pRepExt)    
    logging.debug('fPrint_FundsBal: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()
    
    logging.debug('- open report list')
    type("r",KeyModifier.ALT)
    type("f")    
    time.sleep(1)
    
    logging.debug('- set up funds account listing')
    type("funds")    
    time.sleep(1)
    type("o",KeyModifier.CTRL)
    time.sleep(1)

    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # OK
    myTools.pressTAB(1)
    type(Key.SPACE)
    time.sleep(1)

    # choose CSV
    myTools.pressTAB(2)
    type("c")    
    type(Key.ENTER)
    time.sleep(1)

    myTools.finishReport(reportName)
def fPrint_PreBill_2(pReportMonth,pRepExt,pAorB):
#---------------------------------------------------#
    """ 
    print pre-bill 2
    - uses setupCustomFilter for filters
    - uses setupCustomSort for sorts
    - setupCustomOptions for options
    - restore if prior to TS2016
    """

    myTools.sectionStartTimeStamp("print PreBill 2")

    # name report file: ex: PreBill-03
    reportName = myTools.buildRepName("PreBill2",pRepExt)
    logging.debug('Print_PreBill: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open worksheet')
    type("b",KeyModifier.ALT)
    type("p")    
    time.sleep(1)

    setupCustomOptions()
    setupCustomFilter()
    setupCustomSort()

    # choose text
    myTools.pressSHIFTTAB(3)
    type("t")
    time.sleep(1)

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)

    # RESTORE if version is prior to TS2016 (defect regarding recurring slips)
    if int(Settings.tsVersion) < 2016:
        buName = Settings.tsVersion + "-bill-" + str(myTools.padZero(pReportMonth)) + pAorB            
        backup_Data.fRestore_Backup(buName)
def fPrint_FundsList(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print FundsList")

    # name report file: ex: ARAgedBal-03
    reportName = myTools.buildRepName("FundsList",pRepExt)
    logging.debug('fPrint_FundsList: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report')
    type("r",KeyModifier.ALT)
    type("f")
    time.sleep(1)
    type("funds t")
    time.sleep(1)

    type("o",KeyModifier.CTRL)
    time.sleep(1)
    type(Key.F6)
    time.sleep(1)    

    # move to Print To and choose CSV
    myTools.pressSHIFTTAB(2)
    time.sleep(1)
    type("c")
    time.sleep(1)

    # move to sort list, choose ID
    myTools.pressTAB(5)
    time.sleep(1)
    type(Key.SPACE)
    time.sleep(1)

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def printFirmBudget(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print firm budget")

    reportName = myTools.buildRepName("FirmBud",pRepExt)
    logging.debug('Print_FirmBudget: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report')
    type("r",KeyModifier.ALT)
    type("h")
    time.sleep(2)
    
    type("firm")
    time.sleep(1)

    setupReport()
    myTools.finishReport(reportName)
def fPrint_MissingTime(pReportMonth,pRepExt,pAorB):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print MissingTime")

    # name report file: ex: PreBill-03
    reportName = myTools.buildRepName("MissingTime",pRepExt)
    logging.debug('Print_MissingTime: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open MissingTime')
    type("r",KeyModifier.ALT)
    type("t")
    time.sleep(1)
    type("m")
    time.sleep(1)

    # choose csv
    myTools.pressSHIFTTAB(2)
    type("c")
    time.sleep(1)

    # period
    myTools.pressSHIFTTAB(2)
    if pAorB == "a":
        perDate = str(pReportMonth) + "/01/13" 
    else:
        perDate = str(pReportMonth) + "/15/13" 
    type(perDate)

    # tab to print button to get around AV
    myTools.pressTAB(3)   

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def Print_TkHistory(pReportMonth, pRepExt):
    # ---------------------------------------------------#

    myTools.sectionStartTimeStamp("print tk history")

    # name report file: ex: TkHistory-03
    reportName = myTools.buildRepName("TkHistory", pRepExt)
    logging.debug("Print_TkHistory: " + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug("- open report")
    type("r", KeyModifier.ALT)
    type("t")
    time.sleep(1)
    type("timekeeper history")
    time.sleep(1)
    type("o", KeyModifier.CTRL)
    time.sleep(1)

    # remove all filters
    myTools.pressTAB(4)
    type(Key.ENTER)

    logging.debug("- default options")

    # options button
    myTools.pressTAB(3)
    type(Key.ENTER)
    time.sleep(1)

    # default button
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)

    # period = quarterly
    myTools.pressSHIFTTAB(2)
    type("q")

    # unmark "show analysis"
    myTools.pressSHIFTTAB(8)
    type(Key.SPACE)

    # close dialog
    type(Key.ENTER)
    time.sleep(1)

    logging.debug("- print report")

    # move to Print To and choose CSV
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    # print the report
    type(Key.ENTER)
    time.sleep(1)

    myTools.finishReport(reportName)
def fPrint_PayPerf(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print PayPerf")

    # name report file: ex: PreBill-03
    reportName = myTools.buildRepName("PayPerf",pRepExt)
    logging.debug('Print_PayPerf: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open PayPerf')
    type("r",KeyModifier.ALT)
    type("a")
    time.sleep(1)
    type("p")
    time.sleep(1)
    myTools.pressDOWN(1)
    time.sleep(1)
    
    logging.debug('- set up report')
    type("o",KeyModifier.CTRL)
    
    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Quarterly
    myTools.pressSHIFTTAB(2)
    type("q")
    time.sleep(1)

    # totals
    myTools.pressSHIFTTAB(8)
    type(Key.SPACE)
    time.sleep(1)

    # costs
    myTools.pressSHIFTTAB(1)
    type(Key.SPACE)
    time.sleep(1)

    # OK
    type(Key.ENTER)
    time.sleep(1)

    # choose csv
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    myTools.enterSlipFilter(pReportMonth,"y")

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def Print_ClientsNotBilled(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print ClientsNotBilled")

    # name report file: ex: Worksheet-03
    reportName = myTools.buildRepName("CliNotBilled",pRepExt)
    logging.debug('Print_CliNotBilled: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report list')
    type("r",KeyModifier.ALT)
    type("b")    
    time.sleep(1)
    
    logging.debug('- set up report')
    type("c")
    time.sleep(1)
    type("o",KeyModifier.CTRL)
    time.sleep(1)

    # Options
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # Default
    myTools.pressSHIFTTAB(4)
    type(Key.SPACE)
    time.sleep(1)

    # include auto pay
    myTools.pressSHIFTTAB(5)
    type(Key.SPACE)
    time.sleep(1)
    
    # include zero
    myTools.pressTAB(1)
    type(Key.SPACE)
    time.sleep(1)

    # OK
    type(Key.ENTER)
    time.sleep(1)

    # choose CSV
    myTools.pressTAB(2)
    type("c")
    time.sleep(1)

    # remove filters
    myTools.pressTAB(7)
    type(Key.ENTER)
    time.sleep(1)   

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)
def Print_PayDistr(pReportMonth,pRepExt):
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("print pay dist")

    # name report file: ex: PayDistr-03
    reportName = myTools.buildRepName("PayDistr",pRepExt)
    logging.debug('Print_PayDistr: ' + reportName)

    # make sure timeslips has focus
    myTools.getFocus()

    logging.debug('- open report')
    type("r",KeyModifier.ALT)
    type("a")
    time.sleep(2)
    
    type("pay")
    time.sleep(1)
    
    type("o",KeyModifier.CTRL)
    time.sleep(1)

    logging.debug('- default options')

    # options button
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)
    
    # default button   
    myTools.pressSHIFTTAB(4)
    type(Key.ENTER)
    time.sleep(1)

    # pay dist = with tax
    myTools.pressSHIFTTAB(3)
    type("w")
    
    # OK
    type(Key.ENTER)
    time.sleep(1)

    # on Selection page, clear any existing filters
    if exists("remove_all.png"):
        click("remove_all.png")   
        time.sleep(1)

    # Sort page
    type(Key.F6)
    time.sleep(1)

    # clear any existing sorts
    if exists("remove_all.png"):
        click("remove_all.png")   
        time.sleep(1)

    # sort by tran id
    type(Key.DOWN)
    time.sleep(1)
    click("add_filter.png")
    time.sleep(1)

    logging.debug('- print report')

    # move to Print To and choose CSV
    myTools.pressSHIFTTAB(3)
    type("c")
    time.sleep(1)

    # print the report
    type(Key.ENTER)    
    time.sleep(1)

    myTools.finishReport(reportName)