Esempio n. 1
0
def addHouseContact():
    """审核委托合同"""
    try:
        base=Base()
        base.open(page.entrustContractPage, houseContractPage.contractSearchMould['tr_contract'], havaFrame=False)
        #配置文件读取委托合同信息
        contractNum = get_conf('houseContractInfo', 'contractNum');if contractNum!=None:consoleLog(u'配置文件中获得委托合同编号:%s'%contractNum)
        sql = "SELECT audit_status from house_contract where contract_num = '%s' and deleted = 0" % contractNum.encode('utf-8')
        if sqlbase.get_count(sql) > 0:
            if sqlbase.serach(sql)[0] == 'AUDIT':
                pass
            else:
                base.input_text(houseContractPage.houseSearchMould['status'], 'AUDIT')#待审核
                base.click(houseContractPage.contractSearchMould['search_button_loc'])
                base.staleness_of(houseContractPage.contractSearchMould['tr_contract'])
                contractNum = base.script(
                    "var a = $('[datagrid-row-index=\"0\"] > [field=\"contract_num\"] > div').text();return a",
                    True).decode('utf-8')
                consoleLog(u'使用随机委托合同:%s 做审核操作' % contractNum, level='w')
        else:
            base.input_text(houseContractPage.houseSearchMould['status'], 'AUDIT')
            base.click(houseContractPage.contractSearchMould['search_button_loc'])
            base.staleness_of(houseContractPage.contractSearchMould['tr_contract'])
            contractNum = base.script(
                "var a = $('[datagrid-row-index=\"0\"] > [field=\"contract_num\"] > div').text();return a", True).decode(
                'utf-8')
            consoleLog(u'使用随机委托合同:%s 做审核操作' % contractNum, level='w')
        base.input_text(houseContractPage.houseSearchMould['status'], '')
        base.input_text(houseContractPage.contractSearchMould['contract_num_loc'], contractNum);consoleLog(u'实际审核委托合同编号:%s' % contractNum)
        base.click(houseContractPage.contractSearchMould['search_button_loc'])
        base.staleness_of(houseContractPage.contractSearchMould['tr_contract'])
        base.dblclick(houseContractPage.contractSearchMould['tr_contract'], checkLoc=houseContractPage.addHouseContractMould['contract_num_loc'])
        # 驳回
        base.click(houseContractPage.addHouseContractMould['tab_info_loc'], index=3)
        base.script('$("button[status=\'REJECTED\']")[1].click()')
        base.input_text(houseContractPage.addHouseContractMould['contract_audit_content'], u'自动化测试审核数据')
        base.click(houseContractPage.addHouseContractMould['contract_audit_confirm'])
        base.staleness_of(houseContractPage.contractSearchMould['tr_contract'])
        base.dblclick(houseContractPage.contractSearchMould['tr_contract'], checkLoc=houseContractPage.addHouseContractMould['contract_num_loc'])
        # 审核租金
        base.click(houseContractPage.addHouseContractMould['tab_info_loc'], index=1)
        base.click(houseContractPage.addHouseContractMould['rent_detail_selectAll'])
        base.click(houseContractPage.addHouseContractMould['rent_audit_loc'])
        base.click(houseContractPage.addHouseContractMould['audit_pass_loc'])
        base.click(houseContractPage.addHouseContractMould['rent_audit_confirm'])
        # 初审
        base.click(houseContractPage.addHouseContractMould['tab_info_loc'], index=3)
        base.script('$("button[status=\'PASS\']")[2].click()')
        base.click(houseContractPage.addHouseContractMould['contract_audit_confirm'])
        base.staleness_of(houseContractPage.contractSearchMould['tr_contract'])
        base.dblclick(houseContractPage.contractSearchMould['tr_contract'], checkLoc=houseContractPage.addHouseContractMould['contract_num_loc'])
        # 复审
        base.click(houseContractPage.addHouseContractMould['tab_info_loc'], index=3)
        base.script('$("button[status=\'APPROVED\']")[1].click()')
        base.click(houseContractPage.addHouseContractMould['contract_audit_confirm'])
        base.check_submit()
        consoleLog(u'委托合同:%s 审核成功' % contractNum)

    finally:
        base.driver.quit()
def auditApartmentContract():
    """删除核出租合同终止结算"""
    try:
        base = Base()
        base.open(page.contractEndPage,
                  apartmentContractEndPage.searchMould['tr_contract_end'],
                  havaFrame=False)
        contractNum = get_conf('apartmentContractInfo', 'contractnum')
        sql = "SELECT * from apartment_contract where contract_num = '%s' and deleted = 0 and contract_status != 'EFFECTIVE'" % contractNum.encode(
            'utf-8')
        if sqlbase.get_count(sql) > 0:
            base.input_text(
                apartmentContractEndPage.searchMould['contract_num_loc'],
                contractNum)
        else:
            consoleLog(u'未找到出租合同终止结算的测试数据,跳过删除用例', level='w')
            return
        base.click(apartmentContractEndPage.searchMould['search_button_loc'])
        base.staleness_of(
            apartmentContractEndPage.searchMould['tr_contract_end'])
        base.click(
            apartmentContractEndPage.addContractEndMould['delete_button'])
        base.click(apartmentContractEndPage.
                   addContractEndMould['delete_button_confirm'])
        base.check_submit()
        consoleLog(u'出租合同 %s 终止结算删除成功' % contractNum)
    finally:
        base.driver.quit()
Esempio n. 3
0
def auditDefaultAchievement():
    """审核违约业绩"""
    try:
        base = Base()
        base.open(
            page.apartmentAchievementPage,
            apartmentDefaultAchievementPage.searchContractMould['tr_contract'],
            havaFrame=False)
        contractnum = 'WB1-0067404'
        base.input_text(apartmentDefaultAchievementPage.
                        searchContractMould['contract_num_loc'],
                        contractnum.encode('utf-8'))  #输入合同号
        base.click(apartmentDefaultAchievementPage.
                   searchContractMould['search_button_loc'])  #查找
        base.staleness_of(apartmentDefaultAchievementPage.
                          searchContractMould['tr_contract'])  #等待第一条数据刷新
        base.dblclick(
            apartmentDefaultAchievementPage.searchContractMould['tr_contract'],
            apartmentDefaultAchievementPage.
            detailDefaultMoudle['house_code_loc'])  #点击第一条数据
        #数据校验

        base.click(apartmentDefaultAchievementPage.
                   detailDefaultMoudle['audit_button_loc'])  #审核
        base.input_text(apartmentDefaultAchievementPage.
                        detailAchievementMoudle['contract_audit_content'],
                        u'自动化测试审核意见')  #审核意见
        base.click(apartmentDefaultAchievementPage.
                   detailAchievementMoudle['contract_audit_confirm'])  #确定
        base.check_submit()  #等待提交完成

    finally:
        base.driver.quit()
def addHouseContact():
    """审核委托合同"""
    try:
        base = Base()
        base.open(page.entrustContractPage,
                  houseContractPage.contractSearchMould['tr_contract'],
                  havaFrame=False)
        #配置文件读取合同编号
        contractNum = get_conf('houseContractInfo', 'contractNum')
        sql = "SELECT * from house_contract WHERE contract_num = '%s' and deleted = 0" % contractNum.encode(
            'utf-8')
        if sqlbase.get_count(sql) != 0:
            base.input_text(
                houseContractPage.contractSearchMould['contract_num_loc'],
                contractNum)
            base.click(
                houseContractPage.contractSearchMould['search_button_loc'])
            base.staleness_of(
                houseContractPage.contractSearchMould['tr_contract'])
            base.click(
                houseContractPage.addHouseContractMould['delete_button'])
            base.click(houseContractPage.
                       addHouseContractMould['delete_button_confirm'])
            base.check_submit()
            consoleLog(u'委托合同删除成功')
        else:
            consoleLog(u'未找到委托合同 %s,略过删除功能' % contractNum)
    finally:
        base.driver.quit()
def addReimbursement():
    """新增报销单"""
    try:
        base = Base()
        base.open(page.apartmentPage,
                  apartmentPage.apartmentMould['tr_apartment'])

        # 配置文件中读取房源
        apartmentCode = get_conf('houseInfo', 'apartmentcode')
        consoleLog(u'确认房源 %s 是否存在' % apartmentCode)
        sql = "SELECT * from apartment where apartment_code = '%s' and deleted = 0 and is_active = 'Y'" % apartmentCode.encode(
            'utf-8')
        if sqlbase.get_count(sql) > 0:
            base.input_text(apartmentPage.apartmentMould['residential_name'],
                            apartmentCode)

        else:
            sql = "SELECT apartment_code from apartment where deleted = 0 and is_active = 'Y' and city_code = '330100' LIMIT 1"
            apartmentCode = sqlbase.serach(sql)[0]
            base.input_text(apartmentPage.apartmentMould['residential_name'],
                            apartmentCode)
        base.click(apartmentPage.apartmentMould['search_btn'])
        base.staleness_of(apartmentPage.apartmentMould['tr_apartment'])
        base.click(apartmentPage.apartmentMould['details_btn'])
        base.click(apartmentPage.apartmentMould['expense_btn'])
        # 报销费用
        base.input_text(apartmentPage.apartmentMould['memo'], u'报销单自动化测试备注')
        base.type_select(apartmentPage.typeMould['item_type'], 'WATER')
        base.type_select(apartmentPage.typeMould['bear_type'], 'COMPANY')
        base.input_text(apartmentPage.apartmentMould['amount'], '666')
        base.type_date(apartmentPage.typeMould['start_date'], u'2017-08-08')
        base.type_date(apartmentPage.typeMould['end_date'], u'2017-08-28')
        base.type_select(apartmentPage.typeMould['vacant'], 'Y')
        base.type_select(apartmentPage.typeMould['first'], 'Y')
        base.type_select(apartmentPage.typeMould['source_bear_id'],
                         'AutoTest-13666666665')
        # 报销人
        base.type_select(apartmentPage.typeMould['moneytype'],
                         'CUSTOMER_AGENT_PYMENT')
        base.type_select(apartmentPage.typeMould['customer_name'], 'AutoTest')
        base.type_select(apartmentPage.typeMould['customer_bank_location'],
                         'ABC')
        base.type_select(apartmentPage.typeMould['bank_card'],
                         '6228481561239334717')
        # base.input_text(base.apartmentMould['brepay_company'],u'杭州爱上租科技有限公司')
        base.click(apartmentPage.apartmentMould['submit_btn'])
        base.check_submit()
        consoleLog(u'房源 %s 的报销单新增成功' % apartmentCode)
        sql = "SELECT expense_num from reimbursement_expense where apartment_id = (SELECT apartment_id from apartment where apartment_code = '%s')" % apartmentCode.encode(
            'utf-8')
        consoleLog(u'记录房源 %s 的报销编号' % apartmentCode)
        num = sqlbase.serach(sql)[0]

        #写入配置文件
        set_conf('houseInfo', apartmentReimbursementNum=num)
    finally:
        base.driver.quit()
def auditHouse():
    """审核房源"""
    try:
        base = Base()
        #需要从配置文件读取新增的房源信息才能做审核操作
        residential = get_conf('residential', 'residentialname')
        building = get_conf('residential', 'buildingname')
        unit = get_conf('residential', 'unitname')
        houseno = get_conf('residential', 'housenoname')
        address = residential + building + unit + houseno
        base.open(page.houseAuditPage,
                  houseAuditPage.houseAuditPageloc['audit_btn'])
        base.input_text(houseAuditPage.searchMould['residentia_name_loc'],
                        residential)
        base.input_text(houseAuditPage.searchMould['building_name_loc'],
                        building)
        base.input_text(houseAuditPage.searchMould['unit_name_loc'], unit)
        base.input_text(houseAuditPage.searchMould['houseno_name_loc'],
                        houseno)
        base.click(houseAuditPage.searchMould['search_button_loc'])
        base.staleness_of(houseAuditPage.searchMould['tr_house'])
        base.script('$("#audit_btn").click()')
        base.click(houseAuditPage.houseAuditPageloc['cancel_btn'])  # 审核通过
        for i in range(5):
            try:
                base.click(
                    houseAuditPage.
                    houseAuditPageloc['iszCommonWorkflowPageSure'])  # 确定
                break
            except:
                base.click(
                    houseAuditPage.houseAuditPageloc['cancel_btn'])  # 审核通过
        base.check_submit()
        try:
            base.solr('house', get_conf('testCondition', 'test'))
            consoleLog(u'solr的house-core增量成功')
        except:
            consoleLog(Exception.message, level='e')
            consoleLog(u'执行house-core的增量失败,请检查solr是否正常', level='w')
            pass
        consoleLog(u'房源 %s审核成功' % address)
        house = sqlbase.serach(
            "SELECT residential_id,building_id,unit_id,house_no_id,house_id,house_code from house where property_name like '%s%%' and deleted = 0"
            % address.encode('utf-8'))
        set_conf('residential',
                 residentialID=house[0],
                 buildingID=house[1],
                 unitID=house[2],
                 housenoID=house[3])
        set_conf('houseInfo', houseID=house[4], houseCode=house[5])

    finally:
        base.driver.quit()
def auditReimbuisement():
    """审核报销单"""
    try:
        base=Base()
        base.open(page.reimbursementExpenseListPage, reimbuisementPage.searchMould['tr_reimbuisement'], havaFrame=False)
        #配置文件读取报销单信息
        expenseNum = get_conf('houseInfo', 'apartmentReimbursementNum')
        sql = "SELECT * from reimbursement_expense where expense_num = '%s' and deleted = 0" % expenseNum.encode(
            'utf-8')
        consoleLog(u'查询是否存在测试房源的报销单')

        if sqlbase.get_count(sql) > 0:
            base.input_text(reimbuisementPage.searchMould['expenseNum_loc'], expenseNum)
        else:
            sql = "SELECT rr.expense_num from reimbursement_expense rr INNER JOIN house hh on rr.house_id = hh.house_id where hh.city_code = 330100 " \
                  "and rr.deleted = 0 and rr.audit_status = 'NO_AUDIT' limit 1"
            consoleLog(u'未找到测试房源的报销单,随机查找报销单做审核操作')
            if sqlbase.get_count(sql) > 0:
                expenseNum = sqlbase.serach(sql)[0]
                base.input_text(reimbuisementPage.searchMould['expenseNum_loc'], expenseNum);consoleLog(u'输入报销单:%s' % expenseNum)
            else:
                consoleLog(u'未找到符合条件的报销单,跳过审核用例')
                return
        base.click(reimbuisementPage.searchMould['search_button'])
        base.staleness_of(reimbuisementPage.searchMould['tr_reimbuisement'])
        base.dblclick(reimbuisementPage.searchMould['tr_reimbuisement'])
        base.click(reimbuisementPage.editMould['bohui_loc'])
        base.input_text(reimbuisementPage.editMould['audit_content'], 'AutoTest')
        base.click(reimbuisementPage.editMould['audit_confirm'])
        base.staleness_of(reimbuisementPage.searchMould['tr_reimbuisement'])
        base.dblclick(reimbuisementPage.searchMould['tr_reimbuisement'])
        base.click(reimbuisementPage.editMould['chushen_loc'])
        base.click(reimbuisementPage.editMould['audit_confirm'])
        base.staleness_of(reimbuisementPage.searchMould['tr_reimbuisement'])
        base.dblclick(reimbuisementPage.searchMould['tr_reimbuisement'])
        base.click(reimbuisementPage.editMould['fushen_loc'])
        base.click(reimbuisementPage.editMould['audit_confirm'])
        base.check_submit()
        base.click(reimbuisementPage.editMould['payment_button'], index=0)
        base.click(reimbuisementPage.editMould['payment_type'], index=0)
        base.input_text(reimbuisementPage.editMould['payment_remark'], 'AutoTest')
        base.click(reimbuisementPage.editMould['payment_save'])
        base.staleness_of(reimbuisementPage.searchMould['tr_reimbuisement'])
        base.dblclick(reimbuisementPage.searchMould['tr_reimbuisement'])
        base.click(reimbuisementPage.editMould['payment_audit'])
        base.click(reimbuisementPage.editMould['payment_audit_save'])
        consoleLog(u'报销单 %s 审核成功' % expenseNum)
    finally:
        base.driver.quit()
def addUser(username ,userphone ,userpost ,userrole ,usermail):
    """新增用户"""
    try:
        base=Base()
        base.open(page.userPage, userPage.addUser_loc, havaFrame=False)
        base.click(userPage.addUser_loc)
        base.input_text(userPage.addUserMould['user_name_loc'], username)
        base.type_combotree(userPage.addUserMould['user_dep_loc'], '00000000000000000000000000000000')
        base.input_text(userPage.addUserMould['user_phone_loc'], userphone)
        base.type_select(userPage.addUserMould['user_post_loc'], userpost)
        base.type_select(userPage.addUserMould['user_role_loc'], userrole)
        base.input_text(userPage.addUserMould['user_mail_loc'], usermail)
        base.click(userPage.addUserMould['submit_loc'])
        base.check_submit()
        consoleLog(u'新增用户成功')
    finally:
        base.driver.quit()
def deleteReimbuisement():
    """删除报销单"""
    try:
        base = Base()
        base.open(page.reimbursementExpenseListPage,
                  reimbuisementPage.searchMould['tr_reimbuisement'],
                  havaFrame=False)
        #配置文件读取报销单信息
        expenseNum = get_conf('houseInfo', 'apartmentReimbursementNum')
        sql = "SELECT * from reimbursement_expense where expense_num = '%s' and deleted = 0" % expenseNum.encode(
            'utf-8')
        consoleLog(u'查询是否存在测试房源的报销单')

        if sqlbase.get_count(sql) > 0:
            base.input_text(reimbuisementPage.searchMould['expenseNum_loc'],
                            expenseNum)
        else:
            sql = "SELECT rr.expense_num from reimbursement_expense rr INNER JOIN house hh on rr.house_id = hh.house_id where hh.city_code = 330100 " \
                  "and rr.deleted = 0 limit 1"
            consoleLog(u'未找到测试房源的报销单,随机查找报销单做删除操作')
            if sqlbase.get_count(sql) > 0:
                expenseNum = sqlbase.serach(sql)[0]
                base.input_text(
                    reimbuisementPage.searchMould['expenseNum_loc'],
                    expenseNum)
            else:
                consoleLog(u'未找到符合条件的报销单,跳过删除用例')
                return
        base.click(reimbuisementPage.searchMould['search_button'])
        base.staleness_of(reimbuisementPage.searchMould['tr_reimbuisement'])
        base.click(reimbuisementPage.editMould['reset_button'])
        base.click(reimbuisementPage.editMould['alert_confirm'])
        base.check_submit()
        base.dblclick(reimbuisementPage.searchMould['tr_reimbuisement'])
        base.click(reimbuisementPage.editMould['fanshen_loc'])
        base.input_text(reimbuisementPage.editMould['audit_content'],
                        'AutoTest')
        base.click(reimbuisementPage.editMould['audit_confirm'])
        base.check_submit()
        base.click(reimbuisementPage.editMould['delete_button'])
        base.click(reimbuisementPage.editMould['alert_confirm'])
        consoleLog(u'报销单 %s 删除成功' % expenseNum)

    finally:
        base.driver.quit()
def deleteHouseContractEnd():
    """删除委托合同终止结算"""
    try:
        base = Base()
        base.open(
            page.contractEndPage,
            houseContractEndPage.searchMould['contract_search_button_loc'],
            havaFrame=False)
        base.click(houseContractEndPage.addContractEndMould['tab_info'],
                   index=1)
        #配置文件读取待审核的委托合终止结算
        contractNum = get_conf('houseContractInfo', 'contractnum')
        consoleLog(u'查询委托合同 %s 是否存在终止结算' % contractNum)

        sql = "SELECT * from house_contract where contract_num = '%s' and deleted = 0 and audit_status = 'APPROVED' and contract_status != 'EFFECTIVE'" % contractNum.encode(
            'utf-8')
        if sqlbase.get_count(sql) > 0:
            base.input_text(
                houseContractEndPage.searchMould['end_contract_num_loc'],
                contractNum)
            base.click(
                houseContractEndPage.searchMould['end_search_button_loc'])
            base.staleness_of(
                houseContractEndPage.searchMould['tr_contract_end'])
        else:
            base.click(
                houseContractEndPage.searchMould['end_search_button_loc'])
            base.staleness_of(
                houseContractEndPage.searchMould['tr_contract_end'])
            contractNum = base.script(
                "var a = $('#ContractReceivable_table_wt > div:nth-child(1) > div:nth-child(2) > div.datagrid-view > div.datagrid-view2 > div.datagrid-body > "
                "table > tbody > tr:nth-child(1) > td[field=\"contract_num\"] > div').text();return a",
                True).decode('utf-8')
            consoleLog(u'未找到测试合同的终止结算,随机删除委托合同 %s 的终止结算' % contractNum)
        base.click(houseContractEndPage.addContractEndMould['delete_button'])
        base.click(
            houseContractEndPage.addContractEndMould['delete_button_confirm'])
        base.check_submit()
        consoleLog(u'委托合同 %s 终止结算删除成功' % contractNum)
    finally:
        base.driver.quit()
def deleteCustomer():
    """删除租前客户信息"""
    try:
        base=Base()
        base.open(page.customerListPage, customerPage.listMould['tr_customer'], havaFrame=False)
        #配置文件中读取租前客户信息
        customerName = get_conf('customerInfo', 'customerName')
        sql = "SELECT * from customer where customer_name = '%s' and deleted = 0" % customerName.encode('utf-8')

        if sqlbase.get_count(sql) > 0:
            base.input_text(customerPage.listMould['customer_name_search'], customerName)
            base.click(customerPage.listMould['search_button'])
            base.staleness_of(customerPage.listMould['tr_customer'])
            base.click(customerPage.listMould['delete_button'])
            base.click(customerPage.listMould['alert_confirm'])
            base.check_submit()
            consoleLog(u'租前客户 %s 删除成功' % customerName)
        else:
            consoleLog(u'未找到租前客户 %s,跳过删除' % customerName)
    finally:
        base.driver.quit()
def deleteApartmentContract():
    """删除出租合同"""
    try:
        base=Base()
        base.open(page.apartmentContractPage, apartmentContractPage.searchContractMould['tr_contract'], havaFrame=False)
        #配置文件读取合同编号信息
        contractNum = get_conf('apartmentContractInfo', 'contractnum')
        sql = "SELECT * from apartment_contract where contract_num = '%s' and deleted = 0" % contractNum.encode('utf-8')
        if sqlbase.get_count(sql) > 0:
            base.input_text(apartmentContractPage.searchContractMould['contract_num_loc'], contractNum.decode('utf-8'))
            base.click(apartmentContractPage.searchContractMould['search_button_loc'])
            base.staleness_of(apartmentContractPage.searchContractMould['tr_contract'])
            base.script("$('#data_perm_btn').click()")
            base.click(apartmentContractPage.addApartmentContractMould['delete_button_confirm'])
            base.check_submit()
            consoleLog(u'出租合同 %s 删除成功' % contractNum)
        else:
            consoleLog(u'未找到出租合同 %s ,跳过删除用例' % contractNum)

    finally:
        base.driver.quit()
Esempio n. 13
0
def auditApartmentContract():
    """审核出租合同"""
    try:
        base = Base()
        base.open(page.apartmentContractPage,
                  apartmentContractPage.searchContractMould['tr_contract'],
                  havaFrame=False)
        #配置文件读取待审核合同信息
        contractNum = get_conf('apartmentContractInfo', 'contractnum')
        consoleLog(u'查询承租合同 %s 当前的审核状态' % contractNum)
        sql = "SELECT audit_status from apartment_contract where contract_num = '%s' and deleted = 0" % contractNum.encode(
            'utf-8')

        if sqlbase.get_count(sql) > 0:
            if sqlbase.serach(sql)[0] == 'AUDIT':
                base.input_text(
                    apartmentContractPage.
                    searchContractMould['contract_num_loc'], contractNum)
            else:
                consoleLog(u'出租合同 %s 当前状态不是待审核,跳过审核用例' % contractNum,
                           level='w')
        else:
            sql = "SELECT contract_num from apartment_contract where deleted = 0 and city_code = '330100' and contract_type = 'NEWSIGN' and audit_status = 'AUDIT' " \
                  "and contract_status = 'EFFECTIVE' and entrust_type = 'SHARE' limit 1"
            if sqlbase.get_count(sql) > 0:
                consoleLog(u'查询未审核的承租合同')
                contractNumNew = sqlbase.serach(sql)[0]
                consoleLog(u'未查询到出租合同 %s ,随机使用合同 %s 执行审核用例' %
                           (contractNum, contractNumNew),
                           level='w')
                contractNum = contractNumNew
                base.input_text(
                    apartmentContractPage.
                    searchContractMould['contract_num_loc'], contractNum)
            else:
                consoleLog(u'未查询到符合条件的承租合同,跳过审核用例', level='w')
        base.click(
            apartmentContractPage.searchContractMould['search_button_loc'])
        base.staleness_of(
            apartmentContractPage.searchContractMould['tr_contract'])
        base.dblclick(apartmentContractPage.searchContractMould['tr_contract'])
        # 打开详情页需要加载,但DOM其实已经加载完仍旧无法点击,此处加5秒等待
        for i in range(5):
            try:
                base.click(apartmentContractPage.
                           addApartmentContractMould['tab_info_loc'],
                           index=4)
                break
            except:
                time.sleep(1)
        # 驳回
        base.click(
            apartmentContractPage.addApartmentContractMould['bohui_loc'])
        base.input_text(
            apartmentContractPage.
            addApartmentContractMould['contract_audit_content'], u'自动化测试审核数据')
        base.click(apartmentContractPage.
                   addApartmentContractMould['contract_audit_confirm'])
        base.staleness_of(
            apartmentContractPage.searchContractMould['tr_contract'])
        base.dblclick(
            apartmentContractPage.searchContractMould['tr_contract'])  #双击第一条数据
        for i in range(5):
            try:
                base.click(apartmentContractPage.
                           addApartmentContractMould['tab_info_loc'],
                           index=4)  #点租客详情
                break
            except:
                time.sleep(1)
        # 初审
        base.click(
            apartmentContractPage.addApartmentContractMould['chushen_loc'])
        base.click(apartmentContractPage.
                   addApartmentContractMould['contract_audit_confirm'])
        base.staleness_of(
            apartmentContractPage.searchContractMould['tr_contract'])
        base.dblclick(apartmentContractPage.searchContractMould['tr_contract'])
        for i in range(5):
            try:
                base.click(apartmentContractPage.
                           addApartmentContractMould['tab_info_loc'],
                           index=4)
                break
            except:
                time.sleep(1)
        # 复审
        base.click(
            apartmentContractPage.addApartmentContractMould['fushen_loc'])
        base.click(apartmentContractPage.
                   addApartmentContractMould['contract_audit_confirm'])
        base.check_submit()
        consoleLog(u'审核出租合同 %s 成功' % contractNum)
        #审核通过的合同编号写入配置文件
        set_conf('apartmentContractInfo', contractnum=contractNum)
    finally:
        base.driver.quit()
Esempio n. 14
0
def addApartmentContract():
    """新增出租合同"""
    try:
        base = Base()
        base.open(page.customerListPage,
                  apartmentContractPage.customerSignMould['tr_customer'],
                  havaFrame=False)
        #配置文件读取租客信息
        customerName = get_conf('customerInfo', 'customerName')
        contractNum = 'AutoTest' + '-' + time.strftime('%m%d-%H%M%S')
        testCustomer = "SELECT * from customer where customer_name = '%s' and deleted = 0" % customerName.encode(
            'utf-8')

        if sqlbase.get_count(testCustomer) != 0:
            try:
                base.input_text(apartmentContractPage.
                                customerSignMould['search_customer_name_loc'],
                                customerName)  #输入租客姓名
            except:
                base.click(
                    (By.CSS_SELECTOR,
                     '.panel.window > div:nth-child(1) > div.panel-tool > a'
                     ))  # 可能会有分配租客的弹窗出现,此为关闭
                base.input_text(apartmentContractPage.
                                customerSignMould['search_customer_name_loc'],
                                customerName)  #输入租客姓名
        else:
            try:
                base.click(
                    (By.CSS_SELECTOR,
                     '.panel.window > div:nth-child(1) > div.panel-tool > a'
                     ))  # 可能会有分配租客的弹窗出现,此为关闭
            except:
                pass
            customerCode = base.script(
                "var a = $('[datagrid-row-index=\"0\"] > [field=\"customer_num\"] > div > font').text();return a",
                True).decode('utf-8')
            consoleLog(u'使用随机租客 %s 签约承租合同' % customerCode, level='e')
            base.find_element(
                *apartmentContractPage.
                customerSignMould['search_customer_name_loc']).clear()
        base.click(
            apartmentContractPage.customerSignMould['search_button_loc'])  #查询
        base.staleness_of(
            apartmentContractPage.customerSignMould['tr_customer'])  #等待数据刷新
        base.script("$('button#edit_btn')[2].click()")  # 点击列表页第一行的签约
        # 此处为从配置文件中查询房源
        apartmentCode = get_conf('houseInfo', 'apartmentCode')
        consoleLog(u'查询配置文件测试房源数据:%s' % apartmentCode)
        testApartment = "SELECT rent_type from apartment where apartment_code = '%s' and deleted = 0 and rent_status = 'WAITING_RENT' " \
                        "and is_active = 'Y' and rent_price > 0" % apartmentCode.encode('utf-8')

        if sqlbase.get_count(testApartment) != 0:
            consoleLog(u'查询配置文件测试房源对应委托合同的委托周期')
            testHouseContract = "SELECT entrust_start_date,entrust_end_date,date(sysdate()) from house_contract where contract_num = '%s'" % get_conf(
                'houseContractInfo', 'contractNum').encode('utf-8')
            set_conf('apartmentContractInfo',
                     signDate=sqlbase.serach(testHouseContract)[2],
                     rentStartDate=sqlbase.serach(testHouseContract)[2],
                     rentEndDate=sqlbase.serach(testHouseContract)[1])
            if sqlbase.serach(testApartment)[0] == 'SHARE' or sqlbase.serach(
                    testApartment)[0] == 'share':  #查询结果为合租房源
                base.click(
                    apartmentContractPage.customerSignMould['share'])  #点合租
                base.input_text(apartmentContractPage.
                                customerSignMould['search_apartment_loc'],
                                apartmentCode)  #房源编号
                base.click(apartmentContractPage.
                           customerSignMould['house_search_btn'])  #搜索
            else:
                base.input_text(apartmentContractPage.
                                customerSignMould['search_apartment_loc'],
                                apartmentCode)  #不点合租直接输房源编号
                base.click(apartmentContractPage.
                           customerSignMould['house_search_btn'])  #搜索
        else:
            consoleLog(u'查询配置文件没有签约过承租合同的有效的合租房源')
            randomApartment = "SELECT a.apartment_code,a.apartment_id,hc.contract_num,hc.contract_id FROM apartment a INNER JOIN house_contract hc " \
                              "ON hc.contract_id = a.house_contract_id AND hc.is_active = 'Y' AND hc.deleted = 0 AND hc.contract_status = 'EFFECTIVE' WHERE a.deleted = 0 " \
                              "AND a.rent_price > 0 AND a.city_code = 330100 AND hc.entrust_type = 'SHARE' AND NOT EXISTS ( SELECT 1 FROM apartment_contract_relation " \
                              "WHERE room_id IS NOT NULL AND room_id = a.room_id ) AND NOT EXISTS ( SELECT 1 FROM apartment_contract_relation " \
                              "WHERE room_id IS NULL AND house_id = a.house_id ) ORDER BY RAND() LIMIT 1"
            info = sqlbase.serach(randomApartment)
            apartmentCode = info[0]
            consoleLog(u'使用随机房源 %s 签约承租合同' % apartmentCode, level='w')
            base.click(apartmentContractPage.customerSignMould['share'])  #点合租
            base.input_text(apartmentContractPage.
                            customerSignMould['search_apartment_loc'],
                            info[0])  #房源编号
            base.click(apartmentContractPage.
                       customerSignMould['house_search_btn'])  #搜索
            #将随机取得数据写入配置文件备用
            set_conf('houseInfo', apartmentCode=info[0], apartmentID=info[1])
            set_conf('houseContractInfo',
                     contractnum=info[2],
                     contractid=info[3])

            consoleLog(u'查询随机房源 %s 对应委托合同的委托周期' % apartmentCode)
            randomHouseContract = sqlbase.serach(
                "SELECT entrust_start_date,entrust_end_date,date(sysdate()) from house_contract where contract_num = '%s'"
                % info[2].encode('utf-8'))
            # 将随机取得数据写入配置文件备用
            set_conf('apartmentContractInfo',
                     signDate=randomHouseContract[2],
                     rentStartDate=randomHouseContract[2],
                     rentEndDate=randomHouseContract[1])

        base.staleness_of(
            apartmentContractPage.customerSignMould['apartment_loc'])
        base.dblclick(apartmentContractPage.customerSignMould['apartment_loc'],
                      checkLoc=apartmentContractPage.addApartmentContractMould[
                          'contract_num_loc'])  # 对查询结果的第一条房源数据双击发起签约
        base.input_text(apartmentContractPage.
                        addApartmentContractMould['contract_num_loc'],
                        contractNum)  # 合同编号
        #读取配置文件中预存的数据内容
        signDate = get_conf('apartmentContractInfo', 'signDate')
        rentStartDate = get_conf('apartmentContractInfo', 'rentStartDate')
        rentEndDate = get_conf('apartmentContractInfo', 'rentEndDate')

        base.type_date(apartmentContractPage.typeMould['sign_date'],
                       signDate)  # 签约日期
        base.type_date(apartmentContractPage.typeMould['rent_start_date'],
                       rentStartDate)  # 承租起算日
        base.type_date(apartmentContractPage.typeMould['rent_end_date'],
                       rentEndDate)  # 承租到期日
        base.input_text(
            apartmentContractPage.addApartmentContractMould['deposit_loc'],
            1234)
        base.type_select(apartmentContractPage.typeMould['payment_type'],
                         'NORMAL')  # 正常付款
        base.type_select(apartmentContractPage.typeMould['payment_cycle'],
                         'TOW_MONTH')  # 二月付
        # base.input_text(ApartmentContractPage.addApartmentContractMould['rent_strategy_price_loc'],4321)     #月租金:需求变更,单条情况下无需手动录入
        # base.type_date(ApartmentContractPage.typeMould['rent_strategy_end_loc'],'2018-08-08')    #租金策略结束日:不知道为什么自动化打开的DOM和正常情况下的DOM不一样,所以直接用jquery赋值
        js = "$('#contract_strategy_table > table > tbody > tr > td:nth-child(8) > input').val('%s')" % rentEndDate
        base.script(js)
        base.click(
            apartmentContractPage.
            addApartmentContractMould['rent_strategy_contain_loc'])  # 月租金包含按钮
        base.type_select(apartmentContractPage.typeMould['contain_fee_type'],
                         'PARKING')  # 包含车位费
        base.input_text(
            apartmentContractPage.addApartmentContractMould['contain_fee_loc'],
            123)  # 车位费
        base.click(apartmentContractPage.
                   addApartmentContractMould['contain_fee_save_loc'])  # 保存包含
        base.input_text(
            apartmentContractPage.addApartmentContractMould['agent_fee_loc'],
            234)  # 中介服务费
        base.input_text(
            apartmentContractPage.addApartmentContractMould['remark_loc'],
            'this is autotest date')  # 备注
        base.click(apartmentContractPage.
                   addApartmentContractMould['next_loc_1'])  #第一页下一步
        base.click(apartmentContractPage.
                   addApartmentContractMould['next_loc_2'])  #第二页下一步
        # 租客详情
        base.input_text(
            apartmentContractPage.addApartmentContractMould['sign_name_loc'],
            'AutoTest')  #签约人姓名
        base.type_select(apartmentContractPage.typeMould['sign_id_type'],
                         'IDNO')  #证件类型
        base.input_text(
            apartmentContractPage.addApartmentContractMould['sign_id_no_loc'],
            '42062119910828541X')  #身份证
        base.input_text(
            apartmentContractPage.addApartmentContractMould['sign_phone_loc'],
            '15168368432')  #手机号
        base.input_text(apartmentContractPage.
                        addApartmentContractMould['sign_address_loc'],
                        u'浙江省杭州市滨江区六和路368号海创基地南楼三层')  #地址
        base.type_select(apartmentContractPage.typeMould['sign_is_customer'],
                         'Y')  #为承租人
        base.input_text(apartmentContractPage.
                        addApartmentContractMould['urgent_customer_name_loc'],
                        'AutoTest')  #紧急联系人
        base.input_text(apartmentContractPage.
                        addApartmentContractMould['urgent_phone_loc'],
                        '13666666666')  #紧急联系人号码
        base.type_select(apartmentContractPage.typeMould['urgent_card_type'],
                         'IDNO')  #紧急联系人证件类型
        base.input_text(apartmentContractPage.
                        addApartmentContractMould['urgent_id_card_loc'],
                        '42062119910828541X')  #紧急联系人证件号码
        base.input_text(apartmentContractPage.
                        addApartmentContractMould['urgent_postal_address_loc'],
                        u'浙江省杭州市滨江区六和路368号海创基地南楼三层')  #紧急联系人地址
        base.type_select(apartmentContractPage.typeMould['customer_type'],
                         'EMPLOYEE')  #租客类型
        base.type_select(apartmentContractPage.typeMould['gender'], 'MALE')
        base.type_select(apartmentContractPage.typeMould['education'],
                         'BACHELOR')
        base.input_text(
            apartmentContractPage.addApartmentContractMould['trade_loc'],
            u'计算机软件')
        base.input_text(
            apartmentContractPage.addApartmentContractMould['email_loc'],
            '*****@*****.**')
        base.type_select(apartmentContractPage.typeMould['yesNo'], 'Y')
        base.click(
            apartmentContractPage.addApartmentContractMould['add_person_loc'])
        base.input_text(
            apartmentContractPage.addApartmentContractMould['person_name_loc'],
            'test')
        base.type_select(apartmentContractPage.typeMould['cardType'],
                         'PASSPORT')
        base.input_text(
            apartmentContractPage.
            addApartmentContractMould['person_cardType_loc'], 'abcdefghijk')
        base.type_select(apartmentContractPage.typeMould['sex'], 'MALE')
        base.input_text(
            apartmentContractPage.
            addApartmentContractMould['person_phone_loc'], '13777777777')
        base.type_date(apartmentContractPage.typeMould['staydate'],
                       '2017-08-08')
        base.click(
            apartmentContractPage.addApartmentContractMould['submit_loc'])
        base.check_submit()
        consoleLog(u'出租合同:%s 新增成功' % contractNum)
        sql = "select contract_id from apartment_contract where contract_num = '%s'" % contractNum
        set_conf('apartmentContractInfo',
                 contractnum=contractNum,
                 contractid=sqlbase.serach(sql)[0])

    finally:
        base.driver.quit()
Esempio n. 15
0
def auditHouseContractEnd():
    """审核委托合同终止结算"""
    try:
        base = Base()
        base.open(
            page.contractEndPage,
            houseContractEndPage.searchMould['contract_search_button_loc'],
            havaFrame=False)
        base.click(houseContractEndPage.addContractEndMould['tab_info'],
                   index=1)
        #配置文件读取待审核的委托合终止结算
        contractNum = get_conf('houseContractInfo', 'contractnum')
        consoleLog(u'查询委托合同 %s 是否存在终止结算' % contractNum)

        sql = "SELECT * from house_contract where contract_num = '%s' and deleted = 0 and audit_status = 'APPROVED' and contract_status != 'EFFECTIVE'" % contractNum.encode(
            'utf-8')
        if sqlbase.get_count(sql) > 0:
            base.input_text(
                houseContractEndPage.searchMould['end_contract_num_loc'],
                contractNum)
        else:
            base.type_select(
                houseContractEndPage.typeMould['end_audit_status'], 'NO_AUDIT')
            base.click(
                houseContractEndPage.searchMould['end_search_button_loc'])
            base.staleness_of(
                houseContractEndPage.searchMould['tr_contract_end'])
            contractNum = base.script(
                "var a = $('#ContractReceivable_table_wt > div:nth-child(1) > div:nth-child(2) > div.datagrid-view > div.datagrid-view2 > div.datagrid-body > table > tbody > tr:nth-child(1) > td[field=\"contract_num\"] > div').text();return a",
                True).decode('utf-8')
            base.click(houseContractEndPage.searchMould['end_reset_btn'])
            base.staleness_of(
                houseContractEndPage.searchMould['tr_contract_end'])
            base.input_text(
                houseContractEndPage.searchMould['end_contract_num_loc'],
                contractNum)
        base.click(houseContractEndPage.searchMould['end_search_button_loc'])
        base.staleness_of(houseContractEndPage.searchMould['tr_contract_end'])
        base.dblclick(
            houseContractEndPage.searchMould['tr_contract_end'],
            checkLoc=houseContractEndPage.addContractEndMould['check_loc'])
        #驳回
        base.click(houseContractEndPage.addContractEndMould['bohui_loc'])
        base.input_text(
            houseContractEndPage.addContractEndMould['contract_audit_content'],
            u'自动化测试审核数据')
        base.click(
            houseContractEndPage.addContractEndMould['contract_audit_confirm'])
        base.check_submit()
        base.dblclick(
            houseContractEndPage.searchMould['tr_contract_end'],
            checkLoc=houseContractEndPage.addContractEndMould['check_loc'])
        #初审
        base.click(houseContractEndPage.addContractEndMould['chushen_loc'])
        base.click(
            houseContractEndPage.addContractEndMould['contract_audit_confirm'])
        base.check_submit()
        base.dblclick(
            houseContractEndPage.searchMould['tr_contract_end'],
            checkLoc=houseContractEndPage.addContractEndMould['check_loc'])
        # 复审
        base.click(houseContractEndPage.addContractEndMould['fushen_loc'])
        base.click(
            houseContractEndPage.addContractEndMould['contract_audit_confirm'])
        consoleLog(u'委托合同 %s终止结算审核成功' % contractNum)

    finally:
        base.driver.quit()
Esempio n. 16
0
def addCustomer():
    """新增租前客户信息"""
    try:
        base = Base()
        base.open(page.customerListPage,
                  customerPage.listMould['add_customer_loc'],
                  havaFrame=False)
        base.click(customerPage.listMould['add_customer_loc'])
        customerName = 'AutoTest' + '-' + time.strftime('%m%d-%H%M%S')
        base.input_text(customerPage.addCustomerMould['customer_name_loc'],
                        customerName)
        prelist = [
            "130", "131", "132", "133", "134", "135", "136", "137", "138",
            "139", "147", "150", "151", "152", "153", "155", "156", "157",
            "158", "159", "186", "187", "188"
        ]
        phone = random.choice(prelist) + "".join(
            random.choice("0123456789") for i in range(8))
        base.input_text(customerPage.addCustomerMould['customer_phone_loc'],
                        phone)
        base.click(customerPage.addCustomerMould['customer_gender_loc'],
                   index=1)
        base.click(customerPage.addCustomerMould['customer_marriage_loc'],
                   index=1)
        base.input_text(customerPage.addCustomerMould['customer_email_loc'],
                        '*****@*****.**')
        base.input_text(customerPage.addCustomerMould['customer_wechat_loc'],
                        'AutoTest')
        base.type_select(customerPage.typeMould['constellation'], 'VIRGO')
        base.type_select(customerPage.typeMould['education'], 'BACHELOR')
        base.type_select(customerPage.typeMould['customer_from'], 'LOCAL58')
        # 求租需求
        base.type_select(customerPage.typeMould['rent_class'],
                         'CLASSA')  # 求租等级-A级
        base.type_select(customerPage.typeMould['rent_type'],
                         'GATHERHOUSE')  # 求租类型-不限
        base.type_select(customerPage.typeMould['rent_use'],
                         'RESIDENCE')  # 求租用途-住宅
        base.type_select(customerPage.typeMould['rent_fitment'],
                         'FITMENT_ROUGH')  # 装修情况-毛坯
        base.type_select(customerPage.typeMould['rent_area_code'],
                         '330108')  # 求租城区-滨江
        base.type_select(customerPage.typeMould['rent_business_circle'],
                         '4')  # 求租商圈-浦沿
        base.input_text(customerPage.addCustomerMould['rent_price_min_loc'],
                        '1111')
        base.input_text(customerPage.addCustomerMould['rent_price_max_loc'],
                        '2222')
        base.type_date(customerPage.typeMould['rent_date'], '2017-02-02')
        base.input_text(customerPage.addCustomerMould['rent_people_loc'], '3')
        base.input_text(customerPage.addCustomerMould['area_loc'], '88.88')
        base.input_text(customerPage.addCustomerMould['rent_other'],
                        u'浙江省杭州市滨江区六和路368号海创基地南楼3E')
        base.click(customerPage.addCustomerMould['submit_loc'])
        base.check_submit()
        consoleLog(u'新增租客 %s 成功' % customerName)
        #将新增租客信息写入配置文件中
        set_conf('customerInfo', customerName=customerName)
        sql = "SELECT customer_id from customer where customer_name = '%s' and deleted = 0" % customerName.encode(
            'utf-8')
        set_conf('customerInfo', customerID=sqlbase.serach(sql)[0])
    finally:
        base.driver.quit()
Esempio n. 17
0
def addResidential():
    """新增楼盘"""
    try:
        mybase = Base()
        mybase.open(page.residentiaPage,
                    residentiaPage.searchResidentialModule['search_btn'],
                    havaFrame=False)  #
        # url = 'http://isz.ishangzu.com/isz_house/ResidentialController/searchResidentialList.action'
        # data = {"city_code":"330100","residential_name":"AutoTest","pageNumber":1,"pageSize":30,"sort":"t.create_time","order":"desc"}
        # if request(url,data=data) >= 1:
        # 	consoleLog('已有测试楼盘 AutoTest,跳过新增',level='w')
        # 楼盘地址
        residentialName = 'AutoTest' + '-' + time.strftime(
            '%m%d-%H%M%S')  #定义楼盘名称
        mybase.click(residentiaPage.addResidentialMould['add_btn'])  #新增
        mybase.input_text(
            residentiaPage.addResidentialMould['residential_name'],
            residentialName)  #楼盘名称
        mybase.click(
            residentiaPage.addResidentialMould['residential_jianpin'])  #简拼
        mybase.click(residentiaPage.addResidentialMould['byname_btn'])  #楼盘别买添加
        mybase.input_text(residentiaPage.addResidentialMould['byname'],
                          'auto')  #楼盘别名
        mybase.click(
            residentiaPage.addResidentialMould['save_button_btn'])  #别名保存
        mybase.type_select(residentiaPage.typeMould['area_code'],
                           "330102")  # 城区:上城区
        mybase.type_select(residentiaPage.typeMould['business_circle_name'],
                           "35")  #商圈:四季青
        mybase.input_text(residentiaPage.addResidentialMould['address'],
                          u'自动化测试街道地址')  #街道
        mybase.click(
            residentiaPage.addResidentialMould['get_location_btn'])  #获取经纬
        mybase.input_text(residentiaPage.addResidentialMould['search_address'],
                          u'海创基地')  #地址关键字
        mybase.click(residentiaPage.addResidentialMould['search_map_btn'])  #查询
        mybase.click(
            residentiaPage.addResidentialMould['search_address'])  #点击输入框
        mybase.click(residentiaPage.addResidentialMould['map_point'])  #
        mybase.click(
            residentiaPage.addResidentialMould['save_location_btn'])  #保存
        # 基础信息
        mybase.type_select(residentiaPage.typeMould['property_type'],
                           'ordinary')  #
        sql = "SELECT sd.parent_id from sys_department sd INNER JOIN sys_user sur on sur.dep_id = sd.dep_id INNER JOIN sys_position spt on spt.position_id = sur.position_id " \
              "where sd.dep_district = '330100' and sd.dep_id <> '00000000000000000000000000000000' and (spt.position_name like '资产管家%' or spt.position_name like '综合管家%') ORDER BY RAND() LIMIT 1"
        mybase.type_combotree(residentiaPage.typeMould['department_loc'],
                              sqlbase.serach(sql)[0])  #
        mybase.input_text(residentiaPage.addResidentialMould['build_date'],
                          1988)  #
        mybase.input_text(
            residentiaPage.addResidentialMould['totle_buildings'], 10)  #
        mybase.input_text(
            residentiaPage.addResidentialMould['total_unit_count'], 30)  #
        mybase.input_text(
            residentiaPage.addResidentialMould['total_house_count'], 20)  #
        mybase.input_text(residentiaPage.addResidentialMould['build_area'],
                          400)  #
        mybase.input_text(
            residentiaPage.addResidentialMould['property_company'],
            u'杭州爱上租物业有限公司')  #
        mybase.input_text(residentiaPage.addResidentialMould['property_fee'],
                          2)  #
        mybase.input_text(residentiaPage.addResidentialMould['plot_ratio'],
                          80)  #
        mybase.input_text(residentiaPage.addResidentialMould['green_rate'],
                          20)  #
        mybase.input_text(residentiaPage.addResidentialMould['parking_amount'],
                          200)  #
        mybase.input_text(residentiaPage.addResidentialMould['other_info'],
                          u'临近公交地铁,附近有超市,环境优美')  #
        # 周边配套,图片
        mybase.input_text(residentiaPage.addResidentialMould['bus_stations'],
                          u'六合桥')  #
        mybase.input_text(residentiaPage.addResidentialMould['metro_stations'],
                          u'滨江站')  #
        # 提交新增楼盘字典
        mybase.click(residentiaPage.addResidentialMould['submit_btn'])  #
        mybase.check_submit()
        consoleLog(u'楼盘 %s 新增成功' % residentialName)  #
        # 栋座
        mybase.input_text(
            residentiaPage.searchResidentialModule['residential_name'],
            residentialName)  #
        mybase.click(residentiaPage.searchResidentialModule['search_btn'])  #
        mybase.staleness_of(
            residentiaPage.searchResidentialModule['tr_residential'])  #
        mybase.click(
            residentiaPage.addResidentialMould['building_info_btn'])  #
        mybase.click(residentiaPage.addResidentialMould['add_building_btn'])  #
        mybase.input_text(residentiaPage.addResidentialMould['building_name'],
                          'Building')  #
        mybase.click(residentiaPage.addResidentialMould['lng_lat_btn'])  #
        mybase.input_text(
            residentiaPage.addResidentialMould['input_searchMap'], u'逸天广场')  #
        mybase.click(residentiaPage.addResidentialMould['input_searchMap'])  #
        mybase.click(residentiaPage.addResidentialMould['searchMap_btn'])  #
        mybase.click(residentiaPage.addResidentialMould['save_lng_lat_btn'])  #
        mybase.type_select(residentiaPage.typeMould['property_use'],
                           'ordinary')  #
        mybase.type_select(residentiaPage.addResidentialMould['ground_floors'],
                           10)  #
        mybase.type_select(
            residentiaPage.addResidentialMould['underground_floors'], 2)  #
        mybase.type_select(residentiaPage.addResidentialMould['ladder_count'],
                           30)  #
        mybase.type_select(residentiaPage.addResidentialMould['house_count'],
                           100)  #
        mybase.click(
            residentiaPage.addResidentialMould['save_unitname_btn'])  #
        # 单元
        mybase.click(residentiaPage.addResidentialMould['unit_info_btn'])  #
        mybase.click(residentiaPage.addResidentialMould['add_unit_btn '])  #
        mybase.input_text(residentiaPage.addResidentialMould['unit_name'],
                          'Unit')  #
        mybase.click(
            residentiaPage.addResidentialMould['save_unitname_btn'])  #
        # 楼层
        mybase.click(residentiaPage.addResidentialMould['floor_info_btn'])  #
        mybase.click(residentiaPage.addResidentialMould['add_floor_btn'])  #
        mybase.input_text(residentiaPage.addResidentialMould['floor_name'],
                          'Floor')  #
        mybase.click(
            residentiaPage.addResidentialMould['save_unitname_btn'])  #
        # 房号
        mybase.click(residentiaPage.addResidentialMould['house_info_btn'])  #
        mybase.click(residentiaPage.addResidentialMould['add_house_btn'])  #
        mybase.input_text(residentiaPage.addResidentialMould['house_no'],
                          'Houseno')
        mybase.click(
            residentiaPage.addResidentialMould['save_unitname_btn'])  #
        consoleLog(u'栋座相关新增成功')
    finally:
        mybase.driver.quit()
def addApartmentContract():
    """新增出租合同终止结算"""
    try:
        base = Base()
        base.open(page.apartmentContractPage,
                  apartmentContractEndPage.addContractEndMould['tr_contract'],
                  havaFrame=False)
        #配置文件读取合同信息
        contractNum = get_conf('apartmentContractInfo', 'contractnum')
        endDate = None
        sql = "SELECT rent_end_date from apartment_contract where contract_num = '%s' and deleted = 0" % contractNum.encode(
            'utf-8')
        if sqlbase.get_count(sql) > 0:
            base.input_text(
                apartmentContractEndPage.
                addContractEndMould['contract_num_loc'], contractNum)
            endDate = sqlbase.serach(sql)[0]
        else:
            sql = "SELECT contract_num,rent_end_date from apartment_contract where deleted = 0 and city_code = 330100 and audit_status = 'APPROVED' and contract_status = 'EFFECTIVE' " \
                  "and contract_type = 'NEWSIGN' and entrust_type = 'SHARE' limit 1"
            if sqlbase.get_count(sql) > 0:
                info = sqlbase.serach(sql)
                contractNum = info[0]
                endDate = info[1]
                consoleLog(u'未找到测试合同,随机使用合同 %s 做新增终止结算用例' % contractNum,
                           level='w')
                base.input_text(
                    apartmentContractEndPage.
                    addContractEndMould['contract_num_loc'], contractNum)
                set_conf('apartmentContractInfo', contractnum=contractNum)
            else:
                consoleLog(u'未找到符合条件的可以做终止的出租合同,跳过出租合同终止步骤', level='w')
                return
        base.click(
            apartmentContractEndPage.addContractEndMould['search_button_loc'])
        base.staleness_of(
            apartmentContractEndPage.addContractEndMould['tr_contract'])
        base.context_click(
            apartmentContractEndPage.addContractEndMould['tr_contract'])
        base.click(
            apartmentContractEndPage.addContractEndMould['end_button_loc'],
            index=1)
        base.click(apartmentContractEndPage.addContractEndMould['now_end_loc'])
        base.input_text(
            apartmentContractEndPage.addContractEndMould['receipt_num_loc'],
            'AutoTest')
        base.type_date(apartmentContractEndPage.typeMould['end_date'], endDate)
        base.input_text(
            apartmentContractEndPage.addContractEndMould['end_reason_loc'],
            u'承租周期已完')
        base.type_select(apartmentContractEndPage.typeMould['end_type'],
                         'RETREATING')  # 正退
        base.type_select(
            apartmentContractEndPage.typeMould['receipt_type_loc'],
            'PAYER')  # 承租人
        base.input_text(
            apartmentContractEndPage.addContractEndMould['bank_loc'], u'中国银行')
        base.dblclick(
            apartmentContractEndPage.addContractEndMould['weiyuejin_loc'],
            index=12)
        base.input_text(
            apartmentContractEndPage.
            addContractEndMould['receivable_money_loc'], '888.88')
        base.input_text(
            apartmentContractEndPage.addContractEndMould['payable_money_loc'],
            '666.66')
        base.input_text(
            apartmentContractEndPage.addContractEndMould['remark_loc'],
            'AutoTest')
        # base.click(base.addContractEndMould['submit_loc'])     #不知道这步为什么会报错,改用js执行
        base.script('$("#form_submit_btn").click()')
        base.check_submit()
        consoleLog(u'出租合同 %s 终止结算新增成功' % contractNum)
    finally:
        base.driver.quit()
def addContractEnd():
    """新增委托合同终止结算"""
    try:
        base=Base()
        base.open(page.entrustContractPage, houseContractEndPage.addContractEndMould['tr_contract'], havaFrame=False)
        #配置文件读取将要终止的委托合同
        contractNum = get_conf('houseContractInfo', 'contractnum')
        sql = "SELECT entrust_end_date from house_contract hc where hc.contract_num = '%s' and deleted = 0 and audit_status = 'APPROVED' and contract_status = 'EFFECTIVE'" % contractNum.encode('utf-8')

        if sqlbase.get_count(sql) > 0:
            base.input_text(houseContractEndPage.searchMould['contract_num_loc'], contractNum)
            endDate = sqlbase.serach(sql)[0]
        else:
            consoleLog(u'未找到或不满足新增终止条件的合同 %s,开始随机查找符合条件的委托合同' % contractNum, level='w')
            sql = "select house_contract.contract_num,house_contract.entrust_end_date from house_contract where house_contract.contract_id not in " \
                  "(select house_contract.contract_id from apartment ,apartment_contract ,house_contract where  house_contract.contract_id=apartment.house_contract_id " \
                  "and apartment.house_id=apartment_contract.house_id and house_contract.deleted = 0 and house_contract.audit_status = 'APPROVED' and house_contract.contract_status = 'EFFECTIVE' " \
                  "and house_contract.city_code = 330100 and apartment_contract.real_due_date>NOW()) and contract_num<>'' limit 1"
            if sqlbase.get_count(sql) > 0:
                contractNum = sqlbase.serach(sql, needConvert=False)[0]
                consoleLog(u'随机对委托合同 %s 做新增终止结算操作' % contractNum, level='w')
                base.input_text(houseContractEndPage.searchMould['contract_num_loc'], contractNum)
                endDate = sqlbase.serach(sql)[1]
            else:
                consoleLog(u'未找到符合条件的委托合同,跳过终止结算用例')
                return
        base.click(houseContractEndPage.searchMould['contract_search_button_loc'])
        base.staleness_of(houseContractEndPage.addContractEndMould['tr_contract'])
        base.context_click(houseContractEndPage.addContractEndMould['tr_contract'])#右击第一条数据
        base.click(houseContractEndPage.addContractEndMould['end_button_loc'], index=1)
        base.input_text(houseContractEndPage.addContractEndMould['penalty_loc'], 111)
        base.type_select(houseContractEndPage.typeMould['end_type'], 'RETREATING')  # 结算类型-正退
        base.type_date(houseContractEndPage.typeMould['end_date'], endDate)
        # 结算扣款
        base.input_text(houseContractEndPage.addContractEndMould['penalty_remark_loc'], u'违约金陪入')
        base.input_text(houseContractEndPage.addContractEndMould['return_rent_loc'], 222)
        base.input_text(houseContractEndPage.addContractEndMould['return_rent_remark_loc'], u'返还房租')
        base.input_text(houseContractEndPage.addContractEndMould['no_charge_loc'], 333)
        base.input_text(houseContractEndPage.addContractEndMould['no_charge_remark_loc'], u'未扣款项')
        base.input_text(houseContractEndPage.addContractEndMould['fitment_charge_loc'], 444)
        base.input_text(houseContractEndPage.addContractEndMould['fitment_charge_remark_loc'], u'装修扣款')
        base.input_text(houseContractEndPage.addContractEndMould['other_loc'], 555)
        base.input_text(houseContractEndPage.addContractEndMould['other_remark_loc'], u'其他信息')
        # 代垫费用
        base.click(houseContractEndPage.addContractEndMould['tool_bar'], index=0)
        base.type_select(houseContractEndPage.typeMould['return_type_loc'], 'LIQUIDATED')  # 违约金赔出
        base.input_text(houseContractEndPage.addContractEndMould['return_money_loc'], 666)
        base.type_select(houseContractEndPage.typeMould['bear_type_loc'], 'COMPANY')  # 承担方-公司
        base.type_select(houseContractEndPage.typeMould['bear_name'], 'ISZTECH')
        base.type_date(houseContractEndPage.typeMould['money_start_date'], '2017-07-07')
        base.type_date(houseContractEndPage.typeMould['money_end_date'], '2017-08-08')
        base.type_select(houseContractEndPage.typeMould['explain'], 'VACANCY')  # 情况说明-空置期
        base.type_select(houseContractEndPage.typeMould['dispute'], 'N')
        base.type_date(houseContractEndPage.typeMould['receivable_date'], '2017-08-08')
        # 打款信息
        base.type_select(houseContractEndPage.typeMould['pay_type'], 'OWNER')  # 打款类别-业主收款
        base.input_text(houseContractEndPage.addContractEndMould['pay_name_loc'], 'AutoTest')
        base.input_text(houseContractEndPage.addContractEndMould['pay_bank_loc'], u'中国银行')
        base.input_text(houseContractEndPage.addContractEndMould['pay_bank_no_loc'], '12345678910')
        # base.input_text(HouseContractEndPage.addContractEndMould['company_no_loc'],u'杭州爱上租科技有限公司')
        base.click(houseContractEndPage.addContractEndMould['submit_loc'])
        base.check_submit()
        consoleLog(u'委托合同 %s 终止结算新增成功' % contractNum)
    finally:
        base.driver.quit()