Ejemplo n.º 1
0
class MyTestCase(unittest.TestCase):
    """小秘——我的"""

    def __init__(self, *args, **kwargs):
        super(MyTestCase, self).__init__(*args, **kwargs)
        self.do_request = XmApi()
        self.to_request = self.do_request
        self.XmTEXT = GlobalMap()

    def setUp(self):
        # 每条用例开始前
        """登录"""
        self.to_request.ApiLogin()

    def tearDown(self):
        # 每条用例结束后
        """9、删除所有话术"""
        self.to_request.DelVerbalTrick()

    def test_The_receivable_queries(self):
        """回款查询"""
        self.to_request.The_receivable_queries()

    def test_Payment_query_keyword_is_None(self):
        """付款查询"""
        self.to_request.Payment_query(keyWord=None)

    def test_Payment_query_keyword(self):
        """付款查询带关键字"""
        self.to_request.Payment_query(keyWord="AAA")

    def test_AddVerbalTrick_list_of_visible(self):
        """添加话术、是否可以在列表中显示"""
        self.to_request.AddVerbalTrick(content="这是一条话术", label="上班#")
        self.to_request.VerbalTrickList(label="上班", content='这是一条话术')

    def test_AddVerbalTrick_content_is_null(self):
        """添加话术、内容为空是否有相应的提示"""
        self.to_request.AddVerbalTrick(content=None, label="上班#")
        self.assertEqual('内容不能为空', self.XmTEXT.get('xmcontent'))

    def test_AddVerbalTrick_content_is_long(self):
        """添加话术、内容过长是否有相应的提示"""
        self.to_request.AddVerbalTrick(content=ContentLong, label="上班#")
        self.assertEqual('内容超长', self.XmTEXT.get('xmcontent'))

    def test_AlterVerbalTrick_all_type(self):
        """修改话术、不同类型下进行修改并且列表是否可见"""
        VerbalTrick = ['上班#', '拓展联盟商#', '案场跟进#', '回访联盟商#', '踩盘#', '下班#', '联盟商培训#']
        VerbalTrickType = ['上班', '拓展联盟商', '案场跟进', '回访联盟商', '踩盘', '下班', '联盟商培训']
        self.to_request.AddVerbalTrick(content="这是一条话术", label="上班#")
        for x, y in zip(VerbalTrick, VerbalTrickType):
            self.to_request.VerbalTrickList(label=None, content='这是一条话术')
            self.to_request.AlterVerbalTrick(label=x, content='这是一条话术')
            self.to_request.VerbalTrickList(label=y, content='这是一条话术')
Ejemplo n.º 2
0
 def __init__(self, *args, **kwargs):
     super(FlowPath, self).__init__(*args, **kwargs)
     self.do_request = XmApi()
     self.XmRequest = self.do_request
     self.XmTEXT = GlobalMap()
     self.Agent_request = AgentApi()
     self.AgentRequest = self.Agent_request
     self.AgentTEXT = GlobalMap()
     self.Xfk_request = XfkApi()
     self.XfkRequest = self.Xfk_request
     self.XfkTEXT = GlobalMap()
     self.NRTEXT = HandleRequest()
     self.TEXT = self.NRTEXT
     self.NRTEXT = GlobalMap()
     self.city = LogIn()
     self.City = self.city
     self.Web = WebTools()
     self.WebTooles = self.Web
Ejemplo n.º 3
0
 def __init__(self, *args, **kwargs):
     super(MyTestCase, self).__init__(*args, **kwargs)
     self.do_request = XmApi()
     self.to_request = self.do_request
     self.XmTEXT = GlobalMap()
Ejemplo n.º 4
0
 def __init__(self):
     self.headers = {'Content-Type': 'application/json'}
     # self.headers = {"User-Agent": "0.0.0 rv:73 (iPhone; iOS 12.2; zh_CN)",
     #                 "Connection": "close",
     #                 "Accept-Encoding": 'gzip'}
     self.TEXT = GlobalMap()
Ejemplo n.º 5
0
class PostTestCase(unittest.TestCase):
    """小秘——报岗"""
    def __init__(self, *args, **kwargs):
        super(PostTestCase, self).__init__(*args, **kwargs)
        self.do_request = XmApi()
        self.to_request = self.do_request
        self.XmTEXT = GlobalMap()

    @classmethod
    def setUpClass(cls):
        """登录小秘 只执行一次"""
        cls.do_request = XmApi()
        cls.to_request = cls.do_request
        cls.to_request.ApiLogin()

    @classmethod
    def tearDownClass(cls):
        """所用用例执行之后的操作"""
        pass

    def test_PostContentIsNull(self):
        """报岗内容为空"""
        try:
            self.to_request.Post(sellerId=None,
                                 projectId=None,
                                 reportType=1,
                                 content='',
                                 reportImgs=None)
            self.assertEqual('报岗成功!', self.XmTEXT.get('xmcontent'))
        except BaseException as e:
            print("断言错误,错误原因:%s" % e)
            raise RuntimeError(self.XmTEXT.get('xmurl'))

    def test_PostContentIsLong(self):
        """报岗内容超长"""
        try:
            self.to_request.Post(sellerId=None,
                                 projectId=None,
                                 reportType=1,
                                 content=ContentLong,
                                 reportImgs=None)
            self.assertEqual('内容超长', self.XmTEXT.get('xmcontent'))
        except BaseException as e:
            print("断言错误,错误原因:%s" % e)
            raise RuntimeError(self.XmTEXT.get('xmurl'))

    def test_PostSeller(self):
        """报岗+联盟商"""
        try:
            self.to_request.PostSeller()
            self.to_request.Post(sellerId=self.XmTEXT.get('xmsellerId'),
                                 projectId=None,
                                 reportType=1,
                                 content=None,
                                 reportImgs=None)
            self.assertEqual('报岗成功!', self.XmTEXT.get('xmcontent'))
        except BaseException as e:
            print("断言错误,错误原因:%s" % e)
            raise RuntimeError(self.XmTEXT.get('xmurl'))

    def test_PostProject(self):
        """报岗+项目"""
        try:
            self.to_request.PostProject()
            self.to_request.Post(sellerId=None,
                                 projectId=self.XmTEXT.get('xmprojectId'),
                                 reportType=1,
                                 content=None,
                                 reportImgs=None)
            self.assertEqual('报岗成功!', self.XmTEXT.get('xmcontent'))
        except BaseException as e:
            print("断言错误,错误原因:%s" % e)
            raise RuntimeError(self.XmTEXT.get('xmurl'))

    def test_PostImgsOne(self):
        """图片为1张"""
        try:
            self.to_request.Post(
                sellerId=None,
                projectId=None,
                reportType=1,
                content=None,
                reportImgs=
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png')
            self.assertEqual('报岗成功!', self.XmTEXT.get('xmcontent'))
        except BaseException as e:
            print("断言错误,错误原因:%s" % e)
            raise RuntimeError(self.XmTEXT.get('xmurl'))

    def test_PostImgsFour(self):
        """图片为9张"""
        try:
            self.to_request.Post(
                sellerId=None,
                projectId=None,
                reportType=1,
                content=None,
                reportImgs=
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png')
            self.assertEqual('报岗成功!', self.XmTEXT.get('xmcontent'))
        except BaseException as e:
            print("断言错误,错误原因:%s" % e)
            raise RuntimeError(self.XmTEXT.get('xmurl'))

    def test_PostImgsFive(self):
        """图片为10张"""
        try:
            self.to_request.Post(
                sellerId=None,
                projectId=None,
                reportType=1,
                content=None,
                reportImgs=
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,'
                '/uploads/2019/0930/1f62b001-2547-4193-a1e8-1d695790f4c4.png,')
            self.assertEqual('图片最多不能超过9张', self.XmTEXT.get('xmcontent'))
        except BaseException as e:
            print("断言错误,错误原因:%s" % e)
            raise RuntimeError(self.XmTEXT.get('xmurl'))

    def test_PostCirculationExamine(self):
        """类型 +  内容  循环报岗 并在首页(报岗历史记录)查看"""
        globals()['a'] = 1
        Types = ['上班', '下班', '', '回访联盟商', '联盟商培训', '踩盘', '案场跟进']
        while globals()['a'] != 7:
            try:
                if globals()['a'] == 3:
                    pass
                else:
                    self.to_request.Post(sellerId=None,
                                         projectId=None,
                                         reportType=globals()['a'],
                                         content='这是一条报岗记录',
                                         reportImgs=None)
                    self.assertEqual('报岗成功!', self.XmTEXT.get('xmcontent'))
                    self.to_request.XmHome()
                    time.sleep(0.3)
                    self.assertEqual(self.XmTEXT.get('postcontent'),
                                     '这是一条报岗记录')
                    self.assertEqual(self.XmTEXT.get('posttype'),
                                     Types[globals()['a'] - 1])
                    time.sleep(0.4)
                    self.to_request.HistoryPost()
                    self.assertEqual(self.XmTEXT.get('postcontent'),
                                     '这是一条报岗记录')
                    self.assertEqual(self.XmTEXT.get('posttype'),
                                     Types[globals()['a'] - 1])
            except BaseException as e:
                print("断言错误,错误原因:%s" % e)
                raise RuntimeError(self.XmTEXT.get('xmurl'))
            globals()['a'] = globals()['a'] + 1
Ejemplo n.º 6
0
 def __init__(self):
     self.do_request = HandleRequest()
     self.to_request = self.do_request
     self.XfkTEXT = GlobalMap()
Ejemplo n.º 7
0
class XfkApi:
    def __init__(self):
        self.do_request = HandleRequest()
        self.to_request = self.do_request
        self.XfkTEXT = GlobalMap()

    def GetRequest(self, url, data):
        """GET请求"""
        r = self.do_request.to_request(method="get",
                                       url=(ApiAgentUrl + url),
                                       data=data)
        r.raise_for_status()
        globals()['r.text'] = json.loads(r.text)
        assert globals()['r.text']['resultCode'] == 1
        self.XfkTEXT.set_map('XFKtext', globals()['r.text'])

    def PostRequest(self, url, data):
        """post请求"""
        r = self.do_request.to_request(method="post",
                                       url=(ApiAgentUrl + url),
                                       data=data)
        r.raise_for_status()
        globals()['r.text'] = json.loads(r.text)
        self.XfkTEXT.set_map('XFKtext', globals()['r.text'])
        self.XfkTEXT.set_map('XFKcontent', globals()['r.text']['content'])

    def LoginXfk(self, user=XfkUser, pwd=XfkPwd):
        do_request = HandleRequest()
        r = do_request.to_request(method="post",
                                  url=(ApiLoninUrl +
                                       "/account.do?command=checkLogin"),
                                  data={
                                      "agentTel": user,
                                      "agentLoginPassword": pwd
                                  })
        r.raise_for_status()
        globals()['r.text'] = json.loads(r.text)
        self.XfkTEXT.set_map('Content', globals()['r.text']['Content'])
        if self.XfkTEXT.get('Content') == '登录成功':
            globals()["token"] = globals()['r.text']['Extend']['agentToken']
            self.XfkTEXT.set_map('agentName',
                                 globals()['r.text']['Extend']['agentName'])
            globals()["agentUid"] = globals()['r.text']['Extend']['agentUid']

    def alterName(self, agentname):
        """修改昵称"""
        do_request = HandleRequest()
        r = do_request.to_request(method='post',
                                  url=ApiLoninUrl +
                                  '/account.do?command=updateAgentInfoAll',
                                  data={
                                      'agentToken': globals()['token'],
                                      'agentUid': globals()['agentUid'],
                                      'agentName': agentname,
                                      'token': globals()['token']
                                  })
        r.raise_for_status()
        globals()['r.text'] = json.loads(r.text)
        self.XfkTEXT.set_map('Content', globals()['r.text']['Content'])

    def Template(self, countent, countentId=None):
        """新增/修改模板"""
        self.PostRequest(
            url=
            '/api/mobile/followTemplateService/addOrUpdateFollowTemplate.json',
            data={
                'token': globals()['token'],
                'followTemplateId': countentId,
                'followTemplate': countent
            })
        self.XfkTEXT.set_map('content', globals()['r.text']['content'])

    def getTemplate(self, value=0):
        """获取跟进模板"""
        self.GetRequest(
            url=
            '/api/mobile/followTemplateService/getMySelfFollowTemplate.json',
            data={'token': globals()['token']})
        self.XfkTEXT.set_map('extend', globals()['r.text']['extend'])
        if self.XfkTEXT.get('extend') != []:
            self.XfkTEXT.set_map(
                'followTemplate',
                globals()['r.text']['extend'][value]['followTemplate'])
            self.XfkTEXT.set_map(
                'followTemplateId',
                globals()['r.text']['extend'][value]['followTemplateId'])

    def getAllTemplate(self):
        """获取所有跟进模板+系统模板"""
        self.GetRequest(
            url=
            '/api/mobile/followTemplateService/getMySelfAndPublicFollowTemplate.json',
            data={
                'token': globals()['token'],
                'followTemplateType': '2'
            })
        if globals()['r.text']['extend']['mySelfFollowTemplateList'] != []:
            self.XfkTEXT.set_map(
                'followTemplate',
                globals()['r.text']['extend']['mySelfFollowTemplateList'][0]
                ['followTemplate'])
            self.XfkTEXT.set_map(
                'followTemplateId',
                globals()['r.text']['extend']['mySelfFollowTemplateList'][0]
                ['followTemplateId'])

    def delTemplate(self, TemplateIds):
        """删除跟进模板"""
        self.PostRequest(
            url='/api/mobile/followTemplateService/deleteFollowTemplate.json',
            data={
                'token': globals()['token'],
                'followTemplateIds': TemplateIds
            })

    def alterPwd(self, new, old):
        """修改密码"""
        do_request = HandleRequest()
        r = do_request.to_request(
            method='post',
            url=ApiLoninUrl + '/password.do?command=updateAgentLoginPassword',
            data={
                'newPassword': new,
                'oldPassword': old,
                'agentUid': globals()['agentUid'],
                'token': globals()['token'],
                'agentToken': globals()['token']
            })
        r.raise_for_status()
        globals()['r.text'] = json.loads(r.text)
        self.XfkTEXT.set_map('Content', globals()['r.text']['Content'])

    def bindingWx(self):
        """获取绑定微信页面"""
        self.GetRequest(url='/api/mobile/agentService/getBindingAllWxList',
                        data={'agentToken': globals()['token']})
        self.XfkTEXT.set_map('content', globals()['r.text']['content'])

    def AttacheList(self,
                    StartTime='',
                    EndTime='',
                    Page=1,
                    Level=None,
                    Status=None,
                    Days=None,
                    vlue=0):
        """专员列表"""
        self.GetRequest(
            url="/api/mobile/projectCommissionerService/getCustomerList/v2",
            data={
                'token': globals()["token"],
                'startTime': StartTime,  # 开始时间
                'endTime': EndTime,  # 结束时间
                'rowsDisplayed': '20',
                'pageNum': Page,
                'level': Level,  # 等级: a、b、c
                'status': Status,  # 状态:  1:待处理 2:未上门 3:已上门 4:已签约 5:已结佣 6:终止
                'days': Days,  # 时间筛选
                'projectId': ''
            })
        globals()['projectName'] = globals(
        )['r.text']['extend']['list'][0]['projectName']
        globals()['applyId'] = globals(
        )['r.text']['extend']['list'][0]['applyId']
        self.XfkTEXT.set_map(
            'applyId',
            globals()['r.text']['extend']['list'][0]['applyId'])
        self.XfkTEXT.set_map(
            'xfkcustomerTel',
            globals()['r.text']['extend']['list'][vlue]['customerTel'])
        self.XfkTEXT.set_map('XFKTotal',
                             globals()['r.text']['extend']['total'])

    def HousesList(self,
                   StartTime='',
                   EndTime='',
                   Page=1,
                   Level=None,
                   Status=None,
                   Days=None):
        """专员列表"""
        self.GetRequest(
            url="/api/mobile/salesService/getCustomerList/v2",
            data={
                'token': globals()["token"],
                'startTime': StartTime,  # 开始时间
                'endTime': EndTime,  # 结束时间
                'rowsDisplayed': '20',
                'pageNum': Page,
                'level': Level,  # 等级: a、b、c
                'status': Status,  # 状态:  1:待处理 2:未上门 3:已上门 4:已签约 5:已结佣 6:终止
                'days': Days,  # 时间筛选
                'projectId': ''
            })
        globals()['projectName'] = globals(
        )['r.text']['extend']['list'][0]['projectName']
        globals()['applyId'] = globals(
        )['r.text']['extend']['list'][0]['applyId']
        self.XfkTEXT.set_map(
            'applyId',
            globals()['r.text']['extend']['list'][0]['applyId'])
        self.XfkTEXT.set_map(
            'xfkcustomerTel',
            globals()['r.text']['extend']['list'][0]['customerTel'])
        self.XfkTEXT.set_map('XFKTotal',
                             globals()['r.text']['extend']['total'])

    def ForRegistrationID(self):
        """获取报名ID"""
        self.GetRequest(
            url='/api/mobile/projectService/getProjectAllTypeList/7.1.2.json',
            data={
                'cityId': cityId,
                'tpye': 'local',
                'token': globals()['token']
            })
        a = 0
        globals()['tuanName'] = globals()['r.text']['extend'][a]['projectName']
        while ProjectName != globals()['tuanName']:
            a = a + 1
            globals()['tuanName'] = globals(
            )['r.text']['extend'][a]['projectName']
        globals()['tuanId'] = globals()['r.text']['extend'][a]['tuanId']

    def RecommendNew(self):
        """报名新房"""
        import time
        phone = '1' + str(int(time.time()))
        username = '******' + phone[-4:]
        self.PostRequest(
            url=('/api/mobile/agentService/v4/apply/' + globals()['tuanId'] +
                 '/0/' + globals()['token'] + '/7.2.0.json'),
            data={
                'phone': phone,
                'username': username
            })

    def ExamineClientParticulars(self):
        """客户详情"""
        self.GetRequest(
            url='/api/mobile/projectCommissionerService/getCustomerDetail.json',
            data={
                'token': globals()['token'],
                'applyId': self.XfkTEXT.get('applyId')
            })
        a = 0
        while globals(
        )['r.text']['extend']['salesList'][a]['salesName'] != XfkSalesName:
            a = a + 1
        self.XfkTEXT.set_map(
            'xfkSalesId',
            globals()['r.text']['extend']['salesList'][a]['salesId'])
        globals()['salesId'] = globals(
        )['r.text']['extend']['salesList'][a]['salesId']
        self.XfkTEXT.set_map('sellerCityId',
                             globals()['r.text']['extend']['sellerCityId'])
        self.XfkTEXT.set_map('sellerCityName',
                             globals()['r.text']['extend']['sellerCityName'])
        self.XfkTEXT.set_map(
            'content',
            globals()['r.text']['extend']['followList'][0]['content'])
        globals()['sellerCityId'] = globals(
        )['r.text']['extend']['sellerCityId']
        self.XfkTEXT.set_map('sellerType',
                             globals()['r.text']['extend']['sellerType'])

    def AttacheOperation(self,
                         content='测试数据',
                         FollowConclusion=1,
                         Level='a',
                         SalesId=None,
                         TureOrFalse=1):
        """验客跟进/报备分配"""
        self.PostRequest(
            url=
            '/api/mobile/projectCommissionerService/submitCustomerOperating/v2',
            data={
                'token': globals()['token'],
                'applyId': globals()['applyId'],
                'customerFollow': content,
                'followConclusion': FollowConclusion,  # 1:持续跟进 0:无效终止
                'level': Level,  # 等级: a、b、c
                'salesId': SalesId,  # 售楼员ID
                'propertyDeveloperRecordStatus': TureOrFalse
            })
        self.XfkTEXT.set_map('content', globals()['r.text']['content'])

    def HousesOperation(self,
                        content='测试数据',
                        FollowConclusion=1,
                        Level='a',
                        FollowType=2):
        """电话跟进/上门跟进"""
        self.PostRequest(
            url='/api/mobile/salesService/submitCustomerOperating/v2',
            data={
                'token': globals()['token'],
                'applyId': globals()['applyId'],
                'customerFollow': content,
                'followConclusion': FollowConclusion,  # 1:持续跟进 0:无效终止
                'level': Level,  # 等级: a、b、c
                'followType': FollowType  # 1:电话跟进 2:上门跟进
            })

    def ProjectExpect(self, value=0):
        """查询项目的期数"""
        self.GetRequest(
            url='/api/mobile/commonBussinuess/searchTuansByApplyId',
            data={
                'token': globals()['token'],
                'applyId': self.XfkTEXT.get('applyId')
            })
        self.XfkTEXT.set_map('tuanId',
                             globals()['r.text']['extend'][value]['tuanId'])

    def HouseType(self, houseTypeName='公寓'):
        """选择户型"""
        self.ExamineClientParticulars()
        self.GetRequest(
            url=
            '/api/mobile/commonBussinuess/searchTuanHouseTypeCommissionTypesByTuanId',
            data={
                'token': globals()['token'],
                'tuanId': self.XfkTEXT.get('tuanId')
            })
        globals()['a'] = 0
        if ApiXmUrl == 'http://api.xfj100.com':
            houseTypeName = '1~49套'
        else:
            pass

        try:
            while globals()['r.text']['extend'][
                    globals()['a']]['houseTypeName'] != houseTypeName:
                globals()['a'] = globals()['a'] + 1
        except:
            globals()['a'] = 0
            print(f"找不到户型为{houseTypeName}, 现默认为第一个户型")
        self.XfkTEXT.set_map(
            'houseTypeId',
            globals()['r.text']['extend'][globals()['a']]['houseTypeId'])
        self.XfkTEXT.set_map(
            'houseTypeName',
            globals()['r.text']['extend'][globals()['a']]['houseTypeName'])
        globals()['houseTypes'] = globals()['r.text']['extend'][
            globals()['a']]['commissionTypeVOList']
        """房间类型、房间名称、签约百分比、签约百分比之后的金额"""
        if self.XfkTEXT.get('sellerType') == 'a':
            a = 0
            try:
                while globals()['houseTypes'][a]['typeTitle'] != '佣金' or \
                        globals()['houseTypes'][a]['sellerType'] != 'A':
                    a = a + 1
                self.XfkTEXT.set_map('sellerYJRete',
                                     globals()['houseTypes'][a]['rate'])
                self.XfkTEXT.set_map('sellerYJAmount',
                                     globals()['houseTypes'][a]['amount'])
            except:
                print("该户型可能不存在佣金比例,默认都为O")
                self.XfkTEXT.set_map('sellerYJRete', 0)
                self.XfkTEXT.set_map('sellerYJAmount', 0)

            a = 0
            try:
                while globals()['houseTypes'][a]['typeTitle'] != '现金奖' or \
                        globals()['houseTypes'][a]['sellerType'] != 'A':
                    a = a + 1
                self.XfkTEXT.set_map('sellerXJJRete',
                                     globals()['houseTypes'][a]['rate'])
                self.XfkTEXT.set_map('sellerXJJAmount',
                                     globals()['houseTypes'][a]['amount'])
            except:
                print("该户型可能不存在现金奖,默认都为O")
                self.XfkTEXT.set_map('sellerXJJRete', 0)
                self.XfkTEXT.set_map('sellerXJJAmount', 0)
        else:
            a = 0
            try:
                while globals()['houseTypes'][a]['typeTitle'] != '佣金' or \
                        globals()['houseTypes'][a]['sellerType'] != 'B':
                    a = a + 1
                self.XfkTEXT.set_map('sellerYJRete',
                                     globals()['houseTypes'][a]['rate'])
                self.XfkTEXT.set_map('sellerYJAmount',
                                     globals()['houseTypes'][a]['amount'])
            except:
                print("该户型可能不存在佣金,默认都为O")
                self.XfkTEXT.set_map('sellerYJRete', 0)
                self.XfkTEXT.set_map('sellerYJAmount', 0)

            a = 0
            try:
                while globals()['houseTypes'][a]['typeTitle'] != '现金奖' or \
                        globals()['houseTypes'][a]['sellerType'] != 'B':
                    a = a + 1
                self.XfkTEXT.set_map('sellerXJJRete',
                                     globals()['houseTypes'][a]['rate'])
                self.XfkTEXT.set_map('sellerXJJAmount',
                                     globals()['houseTypes'][a]['amount'])
            except:
                print("该户型可能不存在现金奖,默认都为O")
                self.XfkTEXT.set_map('sellerXJJRete', 0)
                self.XfkTEXT.set_map('sellerXJJAmount', 0)

        a = 0
        try:
            while globals()['houseTypes'][a]['typeTitle'] != '佣金' or \
                    globals()['houseTypes'][a]['sellerType'] != 'X':
                a = a + 1
            self.XfkTEXT.set_map('XFJYJRete',
                                 globals()['houseTypes'][a]['rate'])
            self.XfkTEXT.set_map('XFJYJAmount',
                                 globals()['houseTypes'][a]['amount'])
        except:
            print("该户型可能不存在佣金,默认都为O")
            self.XfkTEXT.set_map('XFJYJRete', 0)
            self.XfkTEXT.set_map('XFJYJAmount', 0)

        a = 0
        try:
            while globals()['houseTypes'][a]['typeTitle'] != '现金奖' or \
                    globals()['houseTypes'][a]['sellerType'] != 'X':
                a = a + 1
            self.XfkTEXT.set_map('XFJXJJRete',
                                 globals()['houseTypes'][a]['rate'])
            self.XfkTEXT.set_map('XFJXJJAmount',
                                 globals()['houseTypes'][a]['amount'])
        except:
            print("该户型可能不存在现金奖,默认都为O")
            self.XfkTEXT.set_map('XFJXJJRete', 0)
            self.XfkTEXT.set_map('XFJXJJAmount', 0)

    def ContractAgo(self):
        """签约前"""
        self.GetRequest(url='/api/mobile/deal/getDealInformation/v3',
                        data={
                            'token': globals()['token'],
                            'applyId': globals()['applyId']
                        })
        self.XfkTEXT.set_map('dealNo',
                             globals()['r.text']['extend']['deal']['dealNo'])
        self.XfkTEXT.set_map('xflbId',
                             globals()['r.text']['extend']['deal']['xflbId'])
        self.XfkTEXT.set_map(
            'estateName',
            globals()['r.text']['extend']['deal']['estateName'])

        self.XfkTEXT.set_map(
            'signTime',
            globals()['r.text']['extend']['deal']['signTimeStr'])
        self.XfkTEXT.set_map(
            'customerName',
            globals()['r.text']['extend']['deal']['customerName'])
        self.XfkTEXT.set_map(
            'customerMobile',
            globals()['r.text']['extend']['deal']['customerMobile'])

    def AttacheContract(self):
        """签约"""
        dome = random.randint(200000, 1000000)
        self.XfkTEXT.set_map(
            'commissionPrice',
            "%.2f" % (round(dome * self.XfkTEXT.get('XFJYJRete'), 2) +
                      round(self.XfkTEXT.get('XFJYJAmount'), 2) +
                      round(dome * float(self.XfkTEXT.get('XFJXJJRete')), 2) +
                      round(self.XfkTEXT.get('XFJXJJAmount'), 2)))
        self.XfkTEXT.set_map(
            'sellerMoney',
            "%.2f" % (round(self.XfkTEXT.get('sellerYJRete') * dome, 2) +
                      self.XfkTEXT.get('sellerYJAmount')))
        self.XfkTEXT.set_map('RoomNoStr', '房号' + globals()['applyId'])
        self.XfkTEXT.set_map('dealNo', self.XfkTEXT.get('dealNo'))
        self.PostRequest(
            url='/api/mobile/deal/addOrUpdateDeal',
            data={
                'xflbId': self.XfkTEXT.get('xflbId'),
                'token': globals()['token'],
                'squareBuilding': '25',
                'signTime': self.XfkTEXT.get('signTime'),
                'roomPriceTotal': dome,
                'roomNoStr': '房号' + globals()['applyId'],
                'remark': 'Python自动化签约',
                'phoneType': 'ios',
                'paymentMethod': '一次性付款',
                'xflbName': '无',
                'houseTypeName': self.XfkTEXT.get('houseTypeName'),
                'houseTypeId': self.XfkTEXT.get('houseTypeId'),
                'estateName': self.XfkTEXT.get('estateName'),
                'dealPic': img + '#' + img,
                'dealNo': self.XfkTEXT.get('dealNo'),
                'customerName': self.XfkTEXT.get('customerName'),
                'customerMobile': self.XfkTEXT.get('customerMobile'),
                'commissionRatePrice': 0,
                'commissionRate': 0,
                'commissionPrice': self.XfkTEXT.get('commissionPrice'),
                'channelType': '0',
                # 'proportion': self.XfkTEXT.get('sellerYJRete'),
                # 'addAmount': self.XfkTEXT.get('sellerYJAmount'),
                # 'amount':
                #     round(dome*self.XfkTEXT.get('sellerYJRete') +
                #           self.XfkTEXT.get('sellerYJAmount') +
                #           dome*self.XfkTEXT.get('sellerXJJRete') +
                #           self.XfkTEXT.get('sellerXJJAmount'), 2),
                'applyId': globals()['applyId']
            })

    def NewsList(self):
        """消息列表"""
        r = self.do_request.to_request(method="post",
                                       url=ApiNewsUrl,
                                       data={
                                           'alias': XfkUser,
                                           'pushSystem': 'xfk',
                                           'token': globals()['token'],
                                           'pageNum': 1,
                                           'rowsDisplayed': '20'
                                       })
        r.raise_for_status()
        globals()['r.text'] = json.loads(r.text)
        if ApiAgentUrl == 'http://api.ykb100.com':
            self.XfkTEXT.set_map(
                'push_title',
                globals()['r.text']['Extend']['List'][0]['pushTitle'])
        else:
            self.XfkTEXT.set_map(
                'push_title',
                globals()['r.text']['extend']['List'][0]['pushTitle'])

    def TimeoutClient(self):
        """获取超时列表"""
        self.GetRequest(
            url='/api/mobile/agentService/getMyOutApply/2.4.5.json',
            data={
                'token': globals()['token'],
                'pageNum': '1',
                'rowsDisplayed': '20'
            })

    # 随机取值
    def RandomString(self, required):
        from random import choice
        self.XfkTEXT.set_map('Random', choice(required))
Ejemplo n.º 8
0
class FlowPath:
    """小秘----成交确认"""
    def __init__(self, *args, **kwargs):
        super(FlowPath, self).__init__(*args, **kwargs)
        self.do_request = XmApi()
        self.XmRequest = self.do_request
        self.XmTEXT = GlobalMap()
        self.Agent_request = AgentApi()
        self.AgentRequest = self.Agent_request
        self.AgentTEXT = GlobalMap()
        self.Xfk_request = XfkApi()
        self.XfkRequest = self.Xfk_request
        self.XfkTEXT = GlobalMap()
        self.NRTEXT = HandleRequest()
        self.TEXT = self.NRTEXT
        self.NRTEXT = GlobalMap()
        self.city = LogIn()
        self.City = self.city
        self.Web = WebTools()
        self.WebTooles = self.Web

    @classmethod
    def setUpClass(cls):
        """登录小秘、幸福客 只执行一次"""
        cls.do_request = XmApi()
        cls.to_request = cls.do_request
        cls.to_request.ApiLogin()
        cls.do_request = XfkApi()
        cls.to_request = cls.do_request
        cls.to_request.LoginXfk()

    def TheNewDeal(self, user=AgentUesr):
        """新成交"""
        self.AgentRequest.LoginAgent(Uesr=user)
        self.AgentRequest.ForRegistrationID()
        self.XfkRequest.AttacheList()
        self.AgentRequest.RecommendNew()
        """报名成功后的操作"""
        self.XfkRequest.AttacheList()
        self.XfkRequest.ExamineClientParticulars()
        self.XfkRequest.AttacheOperation(
            SalesId=self.XfkTEXT.get('xfkSalesId'))
        self.XfkRequest.HousesOperation()
        self.XfkRequest.ProjectExpect()
        self.XfkRequest.HouseType()
        self.XfkRequest.ContractAgo()
        try:
            self.XfkRequest.AttacheContract()
            assert self.XfkTEXT.get('resultCode'), 1
        except:
            self.XfkRequest.AttacheContract()
            assert self.XfkTEXT.get('resultCode'), 1
            pass

    def DealTicket(self):
        """成交确认"""
        self.XmRequest.DealTicketList()
        self.XmRequest.DealTicketParticulars()
        self.XmRequest.DealTicket()
        # self.XmRequest.DealTicketList(DealTicketType=2)
        # self.XmRequest.DealTicketParticulars()

    def ResultsTheChange(self,
                         user=AgentUesr,
                         signTime=0,
                         TypeValue='调价及调佣',
                         repetition=0,
                         isSave=1,
                         remark=None):
        # repetition  换房时  是否重复
        # audit 是否需要审核---城市中开票
        # repetition 房号是否重复
        # isSave 草稿
        # compare 比较
        self.TheNewDeal(user)
        self.DealTicket()
        if ApiXmUrl == 'http://api.xfj100.com':
            demo = self.XmRequest.RandomText(
                textArr=['50~100套', '两房', '三房', '复式', '别墅'])
        else:
            demo = self.XmRequest.RandomText(
                textArr=['一房', '两房', '复式', '写字楼', '三房'])
        demo1 = self.XmRequest.RandomText(textArr=['分期付款', '不限定', '按揭贷款'])
        # print(x, y)
        roomPriceTotal = random.randint(200000, 10000000)  # 成交总价
        squareBuilding = random.randint(20, 200)  # 面积
        customerMobile = '1' + (str(time.time()))[:10]
        if repetition == 1:
            self.XmRequest.ResultsTheChangeStayList(
                projectId=self.AgentTEXT.get('projectId'), value=1)
            globals()['roomNoStr'] = self.XmTEXT.get('roomNoStr')
            self.XmRequest.DealTicketParticulars()
            self.XmRequest.ResultsTheChangeStayList(
                projectId=self.AgentTEXT.get('projectId'))
        else:
            self.XmRequest.DealTicketParticulars()
            self.XmRequest.ResultsTheChangeStayList(
                projectId=self.AgentTEXT.get('projectId'),
                keyWord=self.XmTEXT.get('RoomNoStr'))
        self.XmRequest.ResultsTheChangeParticulars(dealChangeId=0)
        # globals()['xmtext'] = json.loads(json.dumps(json.loads(self.XmTEXT.get('xmtext')),
        #                                             indent=4, sort_keys=False, ensure_ascii=False))

        if TypeValue == '挞定':
            pass
        elif TypeValue == '更名' or TypeValue == '更换开票公司':
            if TypeValue == '更换开票公司':
                self.XmTEXT.set_map('company',
                                    '更换' + time.strftime("%Y-%m-%d"))
            else:
                self.XmTEXT.set_map('customerName', '更名')
                self.XmTEXT.set_map('customerMobile', customerMobile)

        elif TypeValue == '换房' or TypeValue == '调价及调佣':
            if repetition == 1:
                pass
            else:
                if TypeValue == '调价及调佣':
                    pass
                else:
                    self.XmTEXT.set_map(
                        'roomNoStr',
                        f'{TypeValue}-' + (self.XmTEXT.get('roomNoStr'))[2:])
                self.XfkRequest.HouseType(houseTypeName=demo)

        if TypeValue == '换房':
            if signTime == 0:
                signTime = self.XmTEXT.get('signTime')
        if repetition == 1:
            self.XmTEXT.set_map('roomNoStr', globals()['roomNoStr'])
        self.XmRequest.ResultsTheChange(
            type=f'{TypeValue}',
            houseTypeId=self.XmTEXT.get('houseTypeId'),
            commissionRate=self.XmTEXT.get('XFJYJRete'),
            commissionRatePrice=self.XmTEXT.get('XFJYJAmount'),
            commissionSellerRate=self.XmTEXT.get('sellerYJRete'),
            commissionSellerPrice=self.XmTEXT.get('sellerYJAmount'),
            roomPriceTotal=roomPriceTotal,
            changePic=img,
            roomNoStr=self.XmTEXT.get('roomNoStr'),
            signTime=signTime,
            customerName=self.XmTEXT.get('customerName'),
            customerMobile=self.XmTEXT.get('customerMobile'),
            squareBuilding=squareBuilding,
            paymentMethod=demo1,
            changeDesc=f'{TypeValue}' + time.strftime("%Y-%m-%d %H:%M:%S"),
            isSave=isSave,
            sellerFullName=self.XmTEXT.get('company'),
            remark=remark)
        if repetition == 1:
            assert self.XmTEXT.get('xmcontent'), '房号不能重复'
        else:
            if self.XmTEXT.get('xmcontent') == '应付佣金超过了应收代理费':
                pass
            else:
                assert 1, self.XmTEXT.get('ResultCode')
        """审核前后的对比"""
        if TypeValue == '更名':
            self.XmRequest.ResultsTheChangeList(
                projectId=self.AgentTEXT.get('projectId'))
            globals()['xmtext'] = json.loads(
                json.dumps(json.loads(self.XmTEXT.get('xmtext')),
                           indent=4,
                           sort_keys=False,
                           ensure_ascii=False))
            assert self.XmTEXT.get('changeStatusStr'), '已通过'
            assert self.XmTEXT.get('changeTypeStr'), '更名'
        elif TypeValue == '更换开票公司' or TypeValue == '挞定':
            self.XmRequest.ResultsTheChangeList(
                projectId=self.AgentTEXT.get('projectId'))
            self.XmRequest.ResultsTheChangeParticulars()
            globals()['xmtext'] = json.loads(
                json.dumps(json.loads(self.XmTEXT.get('xmtext')),
                           indent=4,
                           sort_keys=False,
                           ensure_ascii=False))
            if TypeValue == '更换开票公司':
                assert ('更换' + time.strftime("%Y-%m-%d")
                        ), globals()['xmtext']['extend']['companyNew']
            self.XmRequest.ResultsTheChangeList(
                projectId=self.AgentTEXT.get('projectId'))
            self.XmRequest.ResultsTheChangeAudit(type=f"{TypeValue}")
            self.XmRequest.ResultsTheChangeList(
                projectId=self.AgentTEXT.get('projectId'))
            globals()['xmtext'] = json.loads(
                json.dumps(json.loads(self.XmTEXT.get('xmtext')),
                           indent=4,
                           sort_keys=False,
                           ensure_ascii=False))
            assert self.XmTEXT.get('changeStatusStr'), '已通过'
            assert self.XmTEXT.get('changeTypeStr'), f'{TypeValue}'
            if TypeValue == '更换开票公司':
                self.XmRequest.ResultsTheChangeParticulars()
                globals()['xmtext'] = json.loads(
                    json.dumps(json.loads(self.XmTEXT.get('xmtext')),
                               indent=4,
                               sort_keys=False,
                               ensure_ascii=False))
                assert ('更换' + time.strftime("%Y-%m-%d")
                        ), globals()['xmtext']['extend']['company']
            if TypeValue == '挞定':
                self.XfkRequest.ExamineClientParticulars()
                globals()['xfktext'] = json.loads(
                    json.dumps(json.loads(self.XmTEXT.get('XFKtext')),
                               indent=4,
                               sort_keys=False,
                               ensure_ascii=False))
                assert '终止', globals(
                )['xfktext']['extend']['customerPrjStatusName']
                assert '变更挞定', globals(
                )['xfktext']['extend']['followList'][0]['content']
                assert '挞定', globals(
                )['xfktext']['extend']['followList'][1]['content']
                """作废后查看客户详情"""
                self.XfkRequest.ExamineClientParticulars()
                globals()['xfktext'] = json.loads(
                    json.dumps(json.loads(self.XmTEXT.get('XFKtext')),
                               indent=4,
                               sort_keys=False,
                               ensure_ascii=False))
                assert '终止', globals(
                )['xfktext']['extend']['customerPrjStatusName']
                assert '变更挞定', globals(
                )['xfktext']['extend']['followList'][0]['content']
                assert '小秘', globals(
                )['xfktext']['extend']['followList'][0]['createUserName']
        else:
            if repetition == 1:
                pass
            else:
                a = 1
                while a != 3:
                    time.sleep(2)
                    # if audit == 0:
                    """差值是否小于5000"""
                    if a == 1 and (TypeValue == '调价及调佣' or TypeValue == '换房'):
                        self.XmRequest.ResultsTheChangeList(
                            projectId=self.AgentTEXT.get('projectId'))
                        if self.XmTEXT.get('changeStatusStr') == '已通过':
                            a = 2
                        else:
                            a = 1
                    self.XmRequest.ResultsTheChangeList(
                        projectId=self.AgentTEXT.get('projectId'),
                        dealId=self.XmTEXT.get('dealId'))
                    self.XmRequest.ResultsTheChangeParticulars()
                    globals()['xmtext'] = json.loads(
                        json.dumps(json.loads(self.XmTEXT.get('xmtext')),
                                   indent=4,
                                   sort_keys=False,
                                   ensure_ascii=False))
                    """户型ID、户型名字、签约总价、应收比例、额外比例、应收总额"""
                    if a == 1:
                        b = 'New'
                    else:
                        b = ''
                    """对比的数据有:户型ID、代理费总额、签约总价"""
                    assert "%.2f" % self.XmTEXT.get('commissionPrice'), \
                        "%.2f" % (globals()['xmtext']['extend']['commissionPrice' + b])
                    assert float(roomPriceTotal), float(
                        globals()['xmtext']['extend']['roomPriceTotal' + b])
                    if a == 1:
                        """审核"""
                        time.sleep(5)
                        self.XmRequest.ResultsTheChangeAudit(
                            type=f'{TypeValue}')
                    else:
                        pass
                    a = a + 1

    def CityEstablishMessage(self):
        """新成交--城市发票申请"""
        self.TheNewDeal()
        self.DealTicket()
        self.WebTooles.Openbrowser()
        self.city.LogIn(method='City', d=self.WebTooles.driver)
        """收款管理---新建发票申请"""
        self.WebTooles.Click(type='link_text', value='收款模块')
        self.WebTooles.Click(type='link_text', value='新建发票申请')
        self.WebTooles.Click(type='id', value='s2id_projectSelect')
        time.sleep(2)
        self.WebTooles.Input(type='id',
                             value='s2id_autogen4_search',
                             inputvalue=ProjectName)
        self.WebTooles.Click(type='xpath',
                             value='//*[@id="select2-results-4"]/li/ul/li')
        self.WebTooles.Click(type='id', value='s2id_companySelect')  # 结算公司
        self.WebTooles.Click(type='xpath',
                             value='//*[@id="select2-results-3"]/li[1]')
        self.WebTooles.Click(type='id', value='settleTitleSelect')  # 发票抬头
        self.WebTooles.Click(
            type='xpath',
            value='//*[@id="invoiceTitleFieldset"]/div[5]/div/ul/li[1]')
        self.WebTooles.Input(type='id',
                             value='invoiceRemark',
                             inputvalue='新建发票申请' +
                             time.strftime("%Y-%m-%d"))  # 其他要求
        self.WebTooles.Click(type='class', value='btn-next')  # 下一步
        self.WebTooles.Click(type='id', value='selroom')
        self.WebTooles.Input(type='id',
                             value='keyWord',
                             inputvalue=self.XfkTEXT.get('RoomNoStr'))
        self.WebTooles.Click(type='id', value='searchSeller')
        time.sleep(0.5)
        self.WebTooles.Click(type='class', value='checker')
        self.WebTooles.Click(type='id', value='btnconfirm')  # 确定
        self.WebTooles.Click(type='id', value='confirmRatioBtn')  # 弹框确定
        # 需要进行调整
        self.WebTooles.Click(type='link_text', value='调整')
        time.sleep(0.5)
        self.WebTooles.driver.find_element_by_id(
            'currentInvoiceAmount').clear()
        self.WebTooles.Input(type='id',
                             value='currentInvoiceAmount',
                             inputvalue=str(self.XfkTEXT.get('sellerMoney')))
        self.WebTooles.driver.find_element_by_id('currentHandleAmount').clear()
        self.WebTooles.Input(type='id',
                             value='currentHandleAmount',
                             inputvalue=str(self.XfkTEXT.get('sellerMoney')))
        time.sleep(0.5)
        self.WebTooles.Click(type='id', value='adoptIsPassDealChangeAudit')

        self.WebTooles.Click(type='class', value='btn-next')  # 下一步
        self.WebTooles.Click(type='id', value='submitBtn')  # 提交
        SQDH = self.WebTooles.driver.find_element_by_id(
            'popStatementNoSpan').text
        self.WebTooles.Click(type='id', value='addNewRequisitionBtn')  # 确定

        self.WebTooles.Click(type='link_text', value='发票申请确认')  # 进入确认
        self.WebTooles.Input(type='id', value='keyWord',
                             inputvalue=SQDH)  # 输入审核单号
        self.WebTooles.Click(type='link_text', value='查询')
        time.sleep(0.2)
        self.WebTooles.Click(type='link_text', value='查看')
        self.WebTooles.Current_handel()  # 切换到新的窗口
        ##############################################################
        # 要是没有计提公式的  需要添加-----该操作尚未写入
        self.WebTooles.Input(type='id',
                             value='auditRemark',
                             inputvalue='发票申请审核确认' + time.strftime("%Y-%m-%d"))
        time.sleep(0.2)
        self.WebTooles.Click(type='id', value='addButton')
        time.sleep(3)
        self.WebTooles.driver.quit()
        self.WebTooles.Openbrowser()
        self.city.LogIn(method='City', d=self.WebTooles.driver)
        self.WebTooles.Click(type='link_text', value='收款模块')
        if CityUrl == 'http://city.xfj100.com':
            self.WebTooles.Click(type='link_text', value='开票登记')
        elif CityUrl == 'http://city.ykb100.com':
            self.WebTooles.Click(type='link_text', value='发票登记')
        else:
            self.WebTooles.Click(type='link_text', value='开票登记')
        self.WebTooles.Click(type='id', value='s2id_projectSelect')
        self.WebTooles.Input(type='id',
                             value='s2id_autogen1_search',
                             inputvalue=ProjectName)
        self.WebTooles.Click(type='xpath',
                             value='//*[@id="select2-results-1"]/li/ul')
        dome = self.WebTooles.driver.find_element_by_xpath(
            '//*[@id="dealTable"]/tbody/tr[1]/td[1]').text
        if dome == SQDH:
            pass
        else:
            print('申请单号错误')
        self.WebTooles.driver.find_element_by_xpath(
            '//*[@id="dealTable"]/tbody/tr[1]/td[9]/a[1]').click()
        # self.WebTooles.Click(type='link_text', value='开票登记')
        KPJE = (self.WebTooles.driver.find_element_by_id(
            'step3TotalInvoiceAmount').text).replace(',', '')
        text1 = self.WebTooles.driver.find_element_by_id(
            'step3TotalInvoiceAmount').text
        self.WebTooles.Click('id', value='invoiceTime')
        self.WebTooles.NewIframe('#_my97DP > iframe')
        self.WebTooles.Click(type='id', value='dpTodayInput')
        self.WebTooles.QuitIframe()
        self.WebTooles.Input(type='id',
                             value='cityInvoiceNo',
                             inputvalue=time.strftime("%y%m%d"))
        time.sleep(2)
        self.WebTooles.Click(type='id', value='addButton')  # 保存
        self.WebTooles.Click(type='id', value='button-0')  # 确定

        self.WebTooles.Click(type='link_text', value='收款登记')
        self.WebTooles.Click(type='id', value='s2id_projectSelect')  # 项目
        self.WebTooles.Input(type='id',
                             value='s2id_autogen1_search',
                             inputvalue=ProjectName)
        self.WebTooles.Click(type='xpath',
                             value='//*[@id="select2-results-1"]/li/ul')

        self.WebTooles.Click(type='id', value='paymentNameSelect')  # 付款方户名
        self.WebTooles.Click(type='xpath',
                             value='//*[@id="span6"]/div[1]/div/ul/li[1]')

        self.WebTooles.Click(type='id', value='payeeNameSelect')  # 收款方户名
        self.WebTooles.Click(type='xpath',
                             value='//*[@id="span7"]/div[1]/div/ul/li[1]')

        self.WebTooles.Input(type='id', value='amount',
                             inputvalue=KPJE)  # 输入开票金额
        self.WebTooles.Input(type='xpath',
                             value='//*[@id="remark"]',
                             inputvalue='收款登记' +
                             time.strftime("%y-%m-%d"))  # 备注
        time.sleep(3)
        self.WebTooles.Click(type='id', value='submitReceiptButton')  # 确认提交
        self.WebTooles.Click(type='id', value='submitReceiptButton')  # 确认提交
        time.sleep(1)

        self.WebTooles.Click(type='link_text', value='收款核销')
        self.WebTooles.Click('id', value='receivedTime')  # 收款日期
        self.WebTooles.NewIframe('#_my97DP > iframe')
        self.WebTooles.Click(type='id', value='dpTodayInput')
        self.WebTooles.QuitIframe()
        self.WebTooles.Click('xpath', value='//*[@id="pageForm"]/a')
        # self.WebTooles.driver.find_elements_by_class_name('btn-primary')[0].click()
        dome4 = 1
        dome3 = self.WebTooles.driver.find_element_by_xpath(
            '//*[@id="dealtableReceived"]/tbody/tr[' + str(dome4) +
            ']/td[8]').text
        try:
            while dome3 != text1:
                dome4 = dome4 + 1
                time.sleep(0.5)
                dome3 = self.WebTooles.driver.find_element_by_xpath(
                    '//*[@id="dealtableReceived"]/tbody/tr[' + str(dome4) +
                    ']/td[8]').text
            self.WebTooles.driver.find_element_by_xpath(
                '//*[@id="dealtableReceived"]/tbody/tr[' + str(dome4) +
                ']/td[8]').click()
        except Exception as e:
            print(e)
            self.WebTooles.driver.find_element_by_xpath(
                '//*[@id="dealtableReceived"]/tbody/tr[' + str('1') +
                ']/td[8]').click()
        time.sleep(2)
        dome2 = 1
        dome1 = self.WebTooles.driver.find_element_by_xpath(
            '//*[@id="dealtableStatement"]/tbody/tr[' + str(dome2) +
            ']/td[7]').text
        while dome1 != text1:
            dome2 = dome2 + 1
            time.sleep(0.5)
            dome1 = self.WebTooles.driver.find_element_by_xpath(
                '//*[@id="dealtableStatement"]/tbody/tr[' + str(dome2) +
                ']/td[7]').text
        self.WebTooles.driver.find_element_by_xpath(
            '//*[@id="dealtableStatement"]/tbody/tr[' + str(dome2) +
            ']/td[1]/input').click()
        self.WebTooles.Click(type='link_text', value='下一步')
        self.WebTooles.Click(type='link_text', value='确认核销')
        time.sleep(0.3)
        self.WebTooles.Click(type='id', value='button-0')  # 确定
        time.sleep(2)
        HXDH = self.WebTooles.driver.find_element_by_xpath(
            '//*[@id="writeOffTable"]/tbody/tr/td[2]').text
        """付款模块"""
        self.WebTooles.Click(type='link_text', value='付款模块')
        self.WebTooles.Click(type='link_text', value='付款通知管理')
        # """创建付款申请"""
        self.WebTooles.Click(type='link_text', value='收起')
        self.WebTooles.driver.find_elements_by_class_name(
            'btn-success')[0].click()
        self.WebTooles.Current_handel()
        self.WebTooles.Click(type='id', value='s2id_projectSelect')  # 项目
        self.WebTooles.Input(type='id',
                             value='s2id_autogen1_search',
                             inputvalue=ProjectName)
        self.WebTooles.driver.find_elements_by_class_name(
            'select2-results-dept-0')[0].click()
        self.WebTooles.Click(type='id', value='select2-chosen-2')
        self.WebTooles.Input(type='id',
                             value='s2id_autogen2_search',
                             inputvalue=HXDH)  # 直接填写回销单
        self.WebTooles.Click(type='id', value='select2-results-2')
        self.WebTooles.Click(type='id',
                             value='uniform-confirmSelectAllTh')  # 全选
        time.sleep(2)
        self.WebTooles.Click(type='class_name', value='btn-next')
        time.sleep(1)
        self.WebTooles.Click(type='id', value='saveBtn')
        # 关闭浏览器 重新打开
        self.WebTooles.driver.quit()
        self.WebTooles.Openbrowser()
        self.city.LogIn(method='City', d=self.WebTooles.driver)
        self.WebTooles.Click(type='link_text', value='付款模块')
        self.WebTooles.Click(type='link_text', value='付款通知管理')
        self.WebTooles.driver.refresh()
        self.WebTooles.Input(type='id',
                             value='keyWord',
                             inputvalue=self.AgentTEXT.get('ClientNeme'))
        self.WebTooles.Click(type='xpath', value='//*[@id="pageForm"]/a')
        self.WebTooles.WebDriverWait(type='id', value='dealTable_length')
        self.WebTooles.driver.find_element_by_id('dealTable_length').click()
        self.WebTooles.driver.find_element_by_class_name('mini-btn').click()
        try:
            self.WebTooles.Click(type='id', value='uniform-confirmSelectAllTh')
        except BaseException as e:
            print("断言错误,错误原因:%s" % e)
            self.WebTooles.driver.find_element_by_id(
                'dealTable_length').click()
            self.WebTooles.Click(type='id',
                                 value='uniform-confirmSelectAllTh')  # 全选
        self.WebTooles.Click(type='class', value='icon-upload')
        self.WebTooles.Click(type='id', value='button-0')
        self.WebTooles.driver.refresh()
        self.WebTooles.Click(type='link_text', value='付款通知审核')
        self.WebTooles.Input(type='id',
                             value='keyWord',
                             inputvalue=self.AgentTEXT.get('ClientNeme'))
        self.WebTooles.Click(type='xpath', value='//*[@id="pageForm"]/a')
        self.WebTooles.Click(type='id',
                             value='uniform-confirmSelectAllTh')  # 全选
        self.WebTooles.driver.find_elements_by_link_text('审核通过')[0].click()
        # self.WebTooles.Click(type='id', value='uniform-invoiceCheck')   # 是否上传发票  默认上传
        self.WebTooles.driver.find_elements_by_link_text('审核通过')[2].click()
        time.sleep(2)
        self.WebTooles.Click(type='id', value='button-0')  # 确定
        time.sleep(0.5)
        self.WebTooles.driver.quit()

    def TheReceivableReview(self, tpyeName='收款付款'):
        """现金收款 | 付款审核"""
        if tpyeName == '收款付款':
            dome = '现金回款确认'
            self.XmRequest.CashCollectionList()
        else:
            dome = '预收款确认'
            self.XmRequest.PrecollectedList()
        if self.XmTEXT.get('cashStatusStr') == '财务确认中' or self.XmTEXT.get(
                'advanceStatusStr') == '财务确认中':
            self.WebTooles.Openbrowser()
            self.city.LogIn(method='City', d=self.WebTooles.driver)
            self.WebTooles.Click(type='link_text', value='收款模块')
            self.WebTooles.Click(type='link_text', value=dome)
            self.WebTooles.Click(type='link_text', value='收起')
            self.WebTooles.Input(type='id',
                                 value='keyWord',
                                 inputvalue=self.XfkTEXT.get('RoomNoStr'))
            self.WebTooles.Click(type='id', value='closeSelect')
            self.WebTooles.Click(type='link_text', value='查看')
            # self.WebTooles.Click(type='xpath', value='//*[@id="dealTable"]/tbody/tr/td[16]/a')
            self.WebTooles.Click(type='id', value='adoptIsPassDealChangeAudit')
            self.WebTooles.Click(type='id', value='button-0')
            if tpyeName == '收款付款':
                self.XmRequest.CashCollectionList()
            else:
                self.XmRequest.PrecollectedList()
            if self.XmTEXT.get('cashStatusStr') == '已通过':
                pass
            self.WebTooles.driver.quit()
        elif self.XmTEXT.get('cashStatusStr') == '已通过' or self.XmTEXT.get(
                'advanceStatusStr') == '已通过':
            pass
        else:
            self.WebTooles.Openbrowser()
            self.city.LogIn(method='City', d=self.WebTooles.driver)
            self.WebTooles.Click(type='link_text', value='预付和变更审核')
            self.WebTooles.Click(type='xpath',
                                 value='//*[@id="collapse5"]/li[1]/a/span')
            self.WebTooles.Click(type='xpath',
                                 value='//*[@id="s2id_approveType"]/a')
            if tpyeName == '收款付款':
                dome1 = '现金付款'
            else:
                dome1 = '预收预付'
            self.WebTooles.Input(type='id',
                                 value='s2id_autogen2_search',
                                 inputvalue=dome1)
            self.WebTooles.Click(type='id', value='select2-results-2')
            self.WebTooles.Input(type='id',
                                 value='keyWord',
                                 inputvalue=self.XfkTEXT.get('RoomNoStr'))
            self.WebTooles.Click(type='link_text', value='查询')
            time.sleep(0.5)
            text = self.WebTooles.driver.find_element_by_id(
                'dealTable_info').text
            if text == '显示第 0 至 0 项结果,共 0 项':
                self.WebTooles.Click(type='link_text', value='财务确认')
                self.WebTooles.Click(type='id', value='s2id_approveType')
                self.WebTooles.Input(type='id',
                                     value='s2id_autogen2_search',
                                     inputvalue=dome1)
                self.WebTooles.Click(type='xpath',
                                     value='//*[@id="select2-results-2"]')
                self.WebTooles.Input(type='id',
                                     value='keyWord',
                                     inputvalue=self.XfkTEXT.get('RoomNoStr'))
                self.WebTooles.Click(type='link_text', value='查询')
                text = self.WebTooles.driver.find_element_by_id(
                    'dealTable_info').text
                if text == '显示第 0 至 0 项结果,共 0 项':
                    pass
                else:
                    self.WebTooles.Click(type='link_text', value='查看')
                    self.WebTooles.Click(type='link_text', value='通过')
                    self.WebTooles.Click(type='id', value='button-0')
                    time.sleep(1)
                    self.WebTooles.driver.quit()
                    self.TheReceivableReview(tpyeName=f"{tpyeName}")
            else:
                self.WebTooles.Click(type='link_text', value='查看')
                self.WebTooles.Click(type='id',
                                     value='adoptIsPassDealChangeAudit2')
                self.WebTooles.Click(type='id', value='button-0')
                time.sleep(1)
                self.WebTooles.driver.quit()
                self.TheReceivableReview(tpyeName=f"{tpyeName}")