def fBill_BillFields():
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("bill fields")
    logging.debug("fBill_BillFields")    

    buName = Settings.tsVersion + "-bill-12b"
    backup_Data.fRestore_Backup(buName)

    reportName = "BillFields-13-" + Settings.tsVersion + ".txt"

    myTools.getFocus()                                # make sure timeslips has focus

    if int(Settings.tsVersion) < 2016:                # to get around a defect in pre-2016
        type("i",KeyModifier.CTRL)                    # open client info and close it to load custom fields
        time.sleep(1)
        type("o",KeyModifier.CTRL)
        time.sleep(1)
        type(Key.F4,KeyModifier.CTRL)
        time.sleep(1)
        type(Key.F4,KeyModifier.CTRL)
    
    bill_ImportLayout.fImport_BillLayout("Fields")    # import the layout    
    fSet_BillDate(12)                                 # set billing data to 12/27 for text bills 
    fPrint_BillsToText(reportName)                    # print all bills to one text file
    reports_Compare.Compare_OneReport(reportName)

    myTools.sectionEndTimeStamp()
def fBill_BillFields():
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("bill fields")
    logging.debug("fBill_BillFields")    

    reportName = myTools.monthToName(13,"-BillFields-",".txt")

    myTools.getFocus()                                # make sure timeslips has focus
    bill_ImportLayout.fImport_BillLayout("Fields")    # import the layout    
    fSet_BillDate(12)                                 # set billing data to 12/27 for text bills 
    fPrint_BillsToText(reportName)                    # print all bills to one text file
    reports_Compare.Compare_OneReport(reportName)

    myTools.sectionEndTimeStamp()
def create_Layouts():
#---------------------------------------------------#

    myTools.sectionStartTimeStamp("create layouts")
    logging.debug('create_Layouts')

    myTools.getFocus()
    fSet_BillDate(1)                                        # set bill date to prep delete of dates from layout

    report_UDSlip.fCreate_SlipListDetailed()
    report_UDSlip.fCreate_SlipFields()
    report_UDSlip.fCreate_SlipListCalc()
    
    report_UDClient.fCreate_ClientListHistory()
    report_UDClient.fCreate_ClientListValues()
    
    report_UDInvoice.fCreate_InvoiceListFields()
    report_UDInvoice.fSort_InvoiceListFields()
    
    report_UDFunds.fCreate_FundsListFields()
    report_UDFunds.fSort_FundsListFields()
    
    report_Statement.fImport_Statement()
    report_FirmAssTot.fSetup_FirmAssTot()    
    report_PBWorksheet.fSetup_PreBill()
    report_TkCollections.fSetup_TkCollections()
    report_AgedARBalDate.fSetup_AgedARBalDate()
    report_ARwRunBal.fSetup_ARwRunBal()
    report_FundsWRunBal.fSetup_FundsWRunBal()
    report_InvoiceListing.fSetup_InvoiceListing()

    myTools.sectionEndTimeStamp()

    bill_Setup.fSetup_BillReport()
    bill_ImportLayout.fImport_BillLayout("Bill with Taxes")
    backup_Data.fBackup_BillData(0,"a")                     # backup before first bill