def fRun_BillCycle(startMonth,endMonth):
#---------------------------------------------------#

    logging.debug(' ')
    logging.debug('start bill cycle')

    for thisMonth in range(startMonth,endMonth):
        logging.debug('- month: ' + str(thisMonth))        

        bill_Print.fPrint_Bills(thisMonth)
        backup_Data.fBackup_BillData(thisMonth,"a")       
        reports_PostBill.fPrint_PostbillReports(thisMonth,"a")      # compare some values before trans

        trans_PostBill.fEnter_Transactions(thisMonth)               # enter all transactions
        backup_Data.fBackup_BillData(thisMonth,"b")        
        reports_PostBill.fPrint_PostbillReports(thisMonth,"b")      # compare some values after trans
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