def fPrint_BillRun(pMonth):
#---------------------------------------------------#
    
    reportName = "Bill-" + myTools.padZero(pMonth) + "-" + Settings.tsVersion + ".txt"    
    logging.debug('fPrint_BillRun: ' + reportName)

    type("b",KeyModifier.CTRL)
    time.sleep(1)

    fRemove_Sort()
    myTools.enterSlipFilter(pMonth,"n")

    # print bills to text
    logging.debug('-- print')    
    type(Key.ENTER)    
    time.sleep(1)

    # fill in path and name; press ENTER
    type(Settings.repFolder + "\\" + reportName)
    time.sleep(1)
    type(Key.ENTER)    
    time.sleep(1)

    if exists("replace_msg.png"):
        type("y")

    # approve bills
    logging.debug('-- approve')    
    wait(Pattern("approve_bills-1.png").targetOffset(-100,-8),FOREVER)
    click(Pattern("approve_bills-1.png").targetOffset(-100,-8))
    type(Key.ENTER)
    time.sleep(3)

    if int(Settings.tsVersion) > 2015:
        wait("approving_bills.png",FOREVER)       
        while exists("approving_bills.png"):
            logging.debug('--- msg exists')
            time.sleep(2)
    else:
        waitVanish("approving_statusbar.png",FOREVER) 
    time.sleep(1)

    # compare the report with baseline
    reports_Compare.Compare_OneReport(reportName)

    # close report entry / don't save
    logging.debug('-- close report window')
    click("report_generate_bills.png")
    type(Key.F4,KeyModifier.CTRL)
    time.sleep(2)
    type("n")    
    time.sleep(1)
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)