def notify_show(request, notify_id): # 查看放款通知 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() job_list = request.session.get('job_list') # 获取当前用户的所有角色 PAGE_TITLE = '放款通知' notify_obj = models.Notify.objects.get(id=notify_id) product_name_list = [ '房抵贷', '担保贷', '过桥贷', ] agree_amount_cn = convert(notify_obj.agree.agree_amount) notify_money_cn = convert(notify_obj.notify_money) agree_term_cn = convert_num(notify_obj.agree.agree_term) agree_rate_str = notify_obj.agree.agree_rate date_today = datetime.date.today() date_today_str = str(date_today) agree_amount = notify_obj.agree.agree_amount provide_agree_list = models.Provides.objects.filter( notify__agree=notify_obj.agree) if provide_agree_list: provide_agree_count = provide_agree_list.count() provide_agree_aount = provide_agree_list.aggregate( Sum('provide_money'))['provide_money__sum'] # remainder = round(agree_amount - provide_agree_aount, 2) return render(request, 'dbms/provide/provide-notify-show.html', locals())
def meeting_notice(request, meeting_id): # 评审会通知 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() meeting_obj = models.Appraisals.objects.get(id=meeting_id) return render(request, 'dbms/meeting/meeting-notice.html', locals())
def overdue_draft(request, *args, **kwargs): # current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '到期票据列表' '''DRAFT_STATE_LIST = [ (1, '未入库'), (2, '已入库'), (21, '置换出库'), (31, '解保出库'), (41, '托收出库'), (99, '已注销')]''' overdue_draft_list = models.DraftExtend.objects.filter( draft_state__in=[1, 2], due_date__lt=datetime.date.today()) # 逾期票据 '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = ['draft_num', 'draft_acceptor', 'draft__draft_owner__name', 'draft__draft_owner__short_name'] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) overdue_draft_list = overdue_draft_list.filter(q) provide_acount = overdue_draft_list.count() '''分页''' paginator = Paginator(overdue_draft_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/warrant/overdu-draft.html', locals())
def overdue_search(request, *args, **kwargs): current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '超期查询' '''SEAL_STATE_LIST = ((1, '诉前保全'), (5, '首次首封'), (11, '首次轮封'), (21, '续查封'), (51, '解除查封'), (99, '注销'))''' date_th_befor = datetime.date.today() + datetime.timedelta( days=-30) # 30天前的日期 overdue_search_list = models.Seal.objects.filter( seal_state__in=[1, 5, 11, 21], inquiry_date__lt=date_th_befor) # 超过30天未查询 '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = [ 'dun__warrant__warrant_num', ] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) overdue_search_list = overdue_search_list.filter(q) provide_acount = overdue_search_list.count() '''分页''' paginator = Paginator(overdue_search_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/dun/overdu-seal.html', locals())
def dun_stage(request, dun_id): # 查看合同 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '资料目录' dun_obj = models.Dun.objects.get(id=dun_id) custom = dun_obj.compensatory.all().first( ).provide.notify.agree.lending.summary.custom.name # 客户名称 compensatory_amount = dun_obj.compensatory.all().first( ).compensatory_amount # 代偿金额 compensatory_date = dun_obj.compensatory.all().first( ).compensatory_date # 代偿日期 provide_money = dun_obj.compensatory.all().first( ).provide.provide_money # 放款金额 '''STAGE_TYPE_LIST = ((1, '证据及财产线索资料'), (11, '诉前资料'), (21, '一审资料'), (31, '上诉及再审'), (41, '案外之诉'), (51, '执行资料'), (99, '其他'))''' dun_stage_1 = models.Stage.objects.filter(dun=dun_obj, stage_type=1) dun_stage_11 = models.Stage.objects.filter(dun=dun_obj, stage_type=11) dun_stage_21 = models.Stage.objects.filter(dun=dun_obj, stage_type=21) dun_stage_31 = models.Stage.objects.filter(dun=dun_obj, stage_type=31) dun_stage_41 = models.Stage.objects.filter(dun=dun_obj, stage_type=41) dun_stage_51 = models.Stage.objects.filter(dun=dun_obj, stage_type=51) dun_stage_99 = models.Stage.objects.filter(dun=dun_obj, stage_type=99) return render(request, 'dbms/dun/dun-stage.html', locals())
def meeting_scan(request, meeting_id): # 评审会预览 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() meeting_obj = models.Appraisals.objects.get(id=meeting_id) expert_list = models.Experts.objects.filter( article_expert__appraisal_article=meeting_obj).distinct() expert_article_count = {} article_count = list() for expert_obj in expert_list: article_count = models.Articles.objects.filter( expert=expert_obj, appraisal_article=meeting_obj).count() expert_article_count['id'] = expert_obj.id expert_article_count['count'] = article_count expert_ll = models.Experts.objects.filter( article_expert__appraisal_article=meeting_obj).count() form_meeting_article_add = forms.MeetingArticleAddForm() meeting_edit_form_data = { 'review_model': meeting_obj.review_model, 'review_date': str(meeting_obj.review_date), 'compere': meeting_obj.compere, } form_meeting_edit = forms.MeetingEditForm(initial=meeting_edit_form_data) return render(request, 'dbms/meeting/meeting-scan.html', locals())
def review_scan(request, custom_id): # current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() job_list = request.session.get('job_list') # 获取当前用户的所有角色 PAGE_TITLE = '保后详情' custom_obj = models.Customes.objects.get(id=custom_id) custom_change_data = { 'custom_typ': custom_obj.custom_typ, 'credit_amount': custom_obj.credit_amount, 'custom_state': custom_obj.custom_state, 'managementor': custom_obj.managementor, } form_custom_change = forms.CustomChangeForm(initial=custom_change_data) custom_controler_data = { 'controler': custom_obj.controler, } form_controler_change = forms.CustomControlerForm( initial=custom_controler_data) date_th_later = datetime.date.today() + datetime.timedelta( days=30) # 30天后的日期 form_review_plan = forms.FormRewiewPlanAdd( initial={'review_plan_date': str(date_th_later)}) form_review_add = forms.FormRewiewAdd( initial={'review_date': str(datetime.date.today())}) form_inv_add = forms.FormInvestigateAdd( initial={'inv_date': str(datetime.date.today())}) article_custom_list = custom_obj.article_custom.all().order_by( '-build_date')[:15] review_custom_list = custom_obj.review_custom.all().order_by( '-review_date', '-review_plan_date')[:5] investigate_custom_list = custom_obj.inv_custom.all().order_by('-inv_date') return render(request, 'dbms/review/review-scan.html', locals())
def soondue_draft(request, *args, **kwargs): # current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '即将到期票据列表' date_th_later = datetime.date.today() - datetime.timedelta(days=-30) # 30天前的日期 soondue_draft_list = models.DraftExtend.objects.filter(draft_state__in=[1, 2], due_date__gte=datetime.date.today(), due_date__lt=date_th_later) # 30天内到期 '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = ['draft_num', 'draft_acceptor', 'draft__draft_owner__name', 'draft__draft_owner__short_name'] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) soondue_draft_list = soondue_draft_list.filter(q) provide_acount = soondue_draft_list.count() '''分页''' paginator = Paginator(soondue_draft_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/warrant/overdu-draft.html', locals())
def repay_plan_prew(request, provide_id): #还款计划预览 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() job_list = request.session.get('job_list') # 获取当前用户的所有角色 PAGE_TITLE = '还款计划表' provide_list = models.Provides.objects.filter(id=provide_id) provide_obj = provide_list.first() provide_money_cn = convert(provide_obj.provide_money) #金额大写 agree_term_cn = convert_num(provide_obj.notify.agree.agree_term) #期限大写 repay_method_DE = [ 21, ] #等额本息 repay_method_FQ = [11, 31] #按月付息 repay_plan_list = provide_obj.track_provide.all().filter( track_typ__in=[21, 25, 31]) if not repay_plan_list: return HttpResponse("请先生成还款计划") term_pri_total = round( repay_plan_list.aggregate(Sum('term_pri'))['term_pri__sum'], 2) #应收本金合计 term_int_total = round( repay_plan_list.aggregate(Sum('term_int'))['term_int__sum'], 2) #应收利息合计 return render(request, 'dbms/provide/repay-plan-prew.html', locals())
def seal(request, *args, **kwargs): current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '查封列表' seal_state_list = models.Seal.SEAL_STATE_LIST seal_list = models.Seal.objects.filter(**kwargs).select_related( 'dun', 'warrant').order_by('dun') '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = [ 'dun__title', # 追偿项目 'warrant__warrant_num' # 财产 ] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) seal_list = seal_list.filter(q) compensatory_amount = seal_list.count() # 信息数目 '''分页''' paginator = Paginator(seal_list, 119) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/dun/dun-seal.html', locals())
def warrant_agree_warrant(request, agree_id, warrant_id): # 查看合同 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() page_title = '权证管理' '''SURE_TYP_LIST = ( (1, '企业保证'), (2, '个人保证'), (11, '房产抵押'), (12, '土地抵押'), (13, '设备抵押'), (14, '存货抵押'), (15, '车辆抵押'), (21, '房产顺位'), (22, '土地顺位'), (31, '应收质押'), (32, '股权质押'), (33, '票据质押'), (41, '合格证监管'), (42, '房产监管'), (43, '土地监管'), (51, '股权预售'), (52, '房产预售'), (53, '土地预售'))''' '''COUNTER_TYP_LIST = ( (1, '企业担保'), (2, '个人保证'), (11, '房产抵押'), (12, '土地抵押'), (13, '设备抵押'), (14, '存货抵押'), (15, '车辆抵押'), (31, '应收质押'), (32, '股权质押'), (33, '票据质押'), (51, '股权预售'), (52, '房产预售'), (53, '土地预售'))''' agree_obj = models.Agrees.objects.get(id=agree_id) lending_obj = agree_obj.lending warrant_obj = models.Warrants.objects.get(id=warrant_id) '''WARRANT_TYP_LIST = [ (1, '房产'), (2, '土地'), (11, '应收'), (21, '股权'), (31, '票据'), (41, '车辆'), (51, '动产'), (99, '他权')]''' sure_list = [1, 2] # 保证反担保类型 house_list = [11, 21, 42, 52] ground_list = [12, 22, 43, 53] receivable_list = [31] stock_list = [32] form_storage_add_edit = forms.StoragesAddEidtForm() return render(request, 'dbms/warrant/warrant-agree-warrant.html', locals())
def ground(request, *args, **kwargs): # 房产列表 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITAL = '权证-土地' add_warrant = '添加土地' warrant_typ_n = 5 form_warrant_edit = forms.WarrantEditForm() form_ground_add_edit = forms.GroundAddEidtForm() ground_app_list = models.Grounds.GROUND_APP_LIST ground_list = models.Grounds.objects.filter(**kwargs).order_by('warrant') '''分页''' paginator = Paginator(ground_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/warrant/ground.html', locals())
def seal_scan(request, dun_id, warrant_id): # 查看合同 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '查封详情' seal_obj = models.Seal.objects.get(dun_id=dun_id, warrant_id=warrant_id) return render(request, 'dbms/dun/dun-seal-scan.html', locals())
def warrant_agree(request, *args, **kwargs): # 按合同入库 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITAL = '权证-按合同' '''AGREE_STATE_LIST = ((11, '待签批'), (21, '已签批'), (31, '未落实'), (41, '已落实'), (51, '待变更'), (61, '已解保'), (99, '作废'))''' AGREE_STATE_LIST = models.Agrees.AGREE_STATE_LIST # 筛选条件 '''筛选''' # agree_list = models.Agrees.objects.filter(**kwargs).filter(agree_state__in=[21, 31, 51]).select_related( # 'lending', 'branch').order_by('-agree_num') agree_list = models.Agrees.objects.filter(**kwargs).select_related('lending', 'branch').order_by('-agree_num') '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = ['agree_num', 'lending__summary__custom__name', 'branch__name', 'lending__summary__summary_num'] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) agree_list = agree_list.filter(q) agree_acount = agree_list.count() '''分页''' paginator = Paginator(agree_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/warrant/warrant-agree.html', locals())
def overdue_cooperator(request, *args, **kwargs): current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '逾期协议' overdue_cooperator_list = models.Cooperators.objects.filter( cooperator_state=1, due_date__lt=datetime.date.today()).order_by('-due_date') # 逾期协议 '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = [ 'draft_num', 'draft_acceptor', 'draft__draft_owner__name', 'draft__draft_owner__short_name' ] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) overdue_cooperator_list = overdue_cooperator_list.filter(q) provide_acount = overdue_cooperator_list.count() '''分页''' paginator = Paginator(overdue_cooperator_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/external/cooperative.html', locals())
def employee(request, *args, **kwargs): # 委托合同列表 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 job_list = request.session.get('job_list') # 获取当前用户的所有角色 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '用户列表' EMPLOYEE_STATUS_LIST = models.Employees.EMPLOYEE_STATUS_LIST '''筛选''' employee_list = models.Employees.objects.filter(**kwargs).select_related('department', ).order_by('employee_status','num') '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = ['email', 'num', 'name', 'department__name', ] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) employee_list = employee_list.filter(q) '''分页''' paginator = Paginator(employee_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/employee/employee.html', locals())
def article(request, *args, **kwargs): # 项目列表 # print(request.session.items()) current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() job_list = request.session.get('job_list') # 获取当前用户的所有角色 PAGE_TITLE = '项目列表' form_article_add_edit = forms.ArticlesAddForm() for k, v in request.GET.items(): # 获取传递参数 pass # print(k, ' ', v) condition = { # 'article_state' : 0, #查询字段及值的字典,空字典查询所有 } # 建立空的查询字典 for k, v in kwargs.items(): # temp = int(v) temp = v kwargs[k] = temp if temp: condition[k] = temp # 将参数放入查询字典 '''筛选条件''' article_state_list = models.Articles.ARTICLE_STATE_LIST # 筛选条件 article_state_list_dic = list( map(lambda x: { 'id': x[0], 'name': x[1] }, article_state_list)) # 列表或元组转换为字典并添加key[{'id': 1, 'name': '待反馈'}, {'id': 2, 'name': '已反馈'}] '''筛选''' article_list = models.Articles.objects.filter(**kwargs).select_related( 'custom', 'director', 'assistant', 'control') article_list = article_list_screen(article_list, request) # 项目筛选 '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = [ 'article_num', 'custom__name', 'custom__short_name', 'director__name', 'assistant__name', 'control__name' ] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) article_list = article_list.filter(q) article_acount = article_list.count() # 信息数目 balance = article_list.aggregate( Sum('article_balance'))['article_balance__sum'] # 在保余额 '''分页''' paginator = Paginator(article_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/article/article.html', locals())
def overdue_evaluate(request, *args, **kwargs): # current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '评估跟踪' warrant_typ_n = 0 '''WARRANT_STATE_LIST = ( (1, '未入库'), (2, '已入库'), (6, '无需入库'), (11, '续抵出库'), (21, '已借出'), (31, '解保出库'), (99, '已注销'))''' ''' WARRANT_TYP_LIST = [ (1, '房产'), (2, '房产包'), (5, '土地使用权'), (6, '在建工程'), (11, '应收账款'), (21, '股权'), (31, '票据'), (41, '车辆'), (51, '动产'), (55, '其他'), (99, '他权')]''' EVALUATE_STATE_LIST = models.Warrants.EVALUATE_STATE_LIST # 筛选条件 '''筛选''' warrant_list = models.Warrants.objects.filter(**kwargs).exclude( evaluate_state__in=[41, 99]) warrant_list = warrant_list_screen(warrant_list, request) '''EVALUATE_STATE_LIST = [(0, '待评估'), (5, '机构评估'), (11, '机构预估'), (21, '综合询价'), (31, '购买成本'), (41, '拍卖评估'), (99, '无需评估')]''' '''ARTICLE_STATE_LIST = [(1, '待反馈'), (2, '已反馈'), (3, '待上会'), (4, '已上会'), (5, '已签批'), (51, '已放款'), (52, '已放完'), (55, '已解保'), (61, '待变更'), (99, '已注销')]''' '''LENDING_STATE = [(4, '已上会'), (5, '已签批'), (51, '已放款'), (52, '已放完'), (55, '已解保'), (61, '待变更'), (99, '已注销')]''' warrant_list = warrant_list.filter( lending_warrant__sure__lending__lending_state__in=[5, 51, 52, 61]).distinct() ddd = [] for warrant in warrant_list: if warrant.evaluate_state == 0: ddd.append(warrant.id) else: if warrant.meeting_date: cccc = warrant.meeting_date - warrant.evaluate_date if cccc.days > 365: ddd.append(warrant.id) warrant_list = models.Warrants.objects.filter(id__in=ddd).order_by('-meeting_date') '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = ['warrant_num'] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) warrant_list = warrant_list.filter(q) warrant_acount = warrant_list.count() '''分页''' paginator = Paginator(warrant_list, 119) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/warrant/overdu-evaluate.html', locals())
def provide_scan(request, provide_id): # 查看放款 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() job_list = request.session.get('job_list') # 获取当前用户的所有角色 PAGE_TITLE = '放款详情' provide_list = models.Provides.objects.filter(id=provide_id) provide_obj = provide_list.first() today_str = str(datetime.date.today()) date_th_later = datetime.date.today() + datetime.timedelta( days=30) # 30天后的日期 date_year_later = datetime.date.today() + datetime.timedelta( days=365) # 一年后的日期 form_repayment_data = { 'repayment_money': provide_obj.provide_money, 'repayment_date': today_str, } form_repayment_add = forms.FormRepaymentAdd( initial=form_repayment_data) #还款form form_compensatory_add = forms.FormCompensatoryAdd( initial={'compensatory_date': today_str}) #代偿form form_track_plan = forms.FormTrackPlan( initial={'plan_date': str(date_th_later)}) form_track_ex_add = forms.FormTrackEXAdd( initial={'ex_track_date': today_str}) #跟踪form form_track_add = forms.FormTrackAdd() #跟踪计划form provide_state_change_data = {'provide_status': provide_obj.provide_status} form_change_provide_state = forms.FormProvideStateChange( initial=provide_state_change_data) #放款状态修改form form_extension_data = { 'extension_amount': provide_obj.provide_balance, 'extension_date': today_str, 'extension_due_date': str(date_year_later), } form_extension = forms.FormExtensionAdd( initial=form_extension_data) #展期form provide_money = provide_obj.provide_money agree_rate = provide_obj.notify.agree.agree_rate #保费率/利率 investigation_fee = provide_obj.notify.agree.investigation_fee #调查费率(%) try: single_quota_rate = float(agree_rate) charge = round(provide_money * single_quota_rate / 100, 2) charge_fee = round(provide_money * investigation_fee / 100, 2) except ValueError: agree_rate = 0 charge = 0 charge_fee = round(provide_money * investigation_fee / 100, 2) form_provide_db_data = { 'agree_rate': agree_rate, 'charge': charge, 'investigation_fee': investigation_fee, 'charge_fee': charge_fee, } form_provide_db = forms.FormProvideDB(initial=form_provide_db_data) return render(request, 'dbms/provide/provide-scan.html', locals())
def result_preview(request, agree_id, result_id): current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() agree_obj = models.Agrees.objects.get(id=agree_id) # 委托合同 result_obj = models.ResultState.objects.get(id=result_id) # 反担保合同 result_detail = result_obj.result_detail return render(request, 'dbms/agree/preview-result.html', locals())
def review_overdue(request, *args, **kwargs): current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() job_list = request.session.get('job_list') # 获取当前用户的所有角色 PAGE_TITLE = '逾期保后' review_overdue_list = models.Customes.objects.filter( review_state=1, review_plan_date__lt=datetime.date.today()).order_by( 'review_plan_date') # 逾期保后 review_overdue_list = custom_list_screen(review_overdue_list, request) '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = [ 'name', 'short_name', ] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) review_overdue_list = review_overdue_list.filter(q) provide_acount = review_overdue_list.count() flow_amount = review_overdue_list.aggregate( Sum('custom_flow'))['custom_flow__sum'] # 流贷余额 accept_amount = review_overdue_list.aggregate( Sum('custom_accept'))['custom_accept__sum'] # 承兑余额 back_amount = review_overdue_list.aggregate( Sum('custom_back'))['custom_back__sum'] # 保函余额 if flow_amount: flow_amount = flow_amount else: flow_amount = 0 if accept_amount: accept_amount = accept_amount else: accept_amount = 0 if back_amount: back_amount = back_amount else: back_amount = 0 balance = flow_amount + accept_amount + back_amount '''分页''' paginator = Paginator(review_overdue_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/review/review.html', locals())
def warrant_agree_scan(request, agree_id): # 查看合同 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '权证管理' agree_obj = models.Agrees.objects.get(id=agree_id) lending_obj = agree_obj.lending '''ARTICLE_STATE_LIST = ((1, '待反馈'), (2, '已反馈'), (3, '待上会'), (4, '已上会'), (5, '已签批'), (51, '已放款'), (52, '已放完'), (55, '已解保'), (61, '待变更'), (99, '已注销'))''' '''SURE_TYP_LIST = ( (1, '企业保证'), (2, '个人保证'), (11, '房产抵押'), (12, '土地抵押'), (13, '动产抵押'), (14, '在建工程抵押'), (15, '车辆抵押'), (21, '房产顺位'), (22, '土地顺位'), (23, '在建工程顺位'), (24, '动产顺位'), (31, '应收质押'), (32, '股权质押'), (33, '票据质押'), (34, '动产质押'), (39, '其他权利质押'), (42, '房产监管'), (43, '土地监管'), (44, '票据监管'), (47, '动产监管'), (49, '其他监管'), (51, '股权预售'), (52, '房产预售'), (53, '土地预售'))''' '''WARRANT_TYP_LIST = [ (1, '房产'), (2, '房产包'), (5, '土地'), (6, '在建工程'), (11, '应收账款'), (21, '股权'), (31, '票据'), (41, '车辆'), (51, '动产'), (55, '其他'), (99, '他权')]''' SURE_LIST = [1, 2] # 保证类 HOUSE_LIST = [11, 21, 42, 52] # 房产类 GROUND_LIST = [12, 22, 43, 53] # 土地类 COUNSTRUCT_LIST = [14, 23] # 在建工程类 RECEIVABLE_LIST = [31, ] # 应收账款类 STOCK_LIST = [32, 51] # 股权类 DRAFT_LIST = [33, 44] # 票据类 VEHICLE_LIST = [15, ] # 车辆类 CHATTEL_LIST = [13, 24, 34, 47] # 动产类 OTHER_LIST = [39, 49] # 其他类 '''反担保情况''' custom_lending_list = models.Customes.objects.filter(lending_custom__sure__lending=lending_obj) warrant_lending_h_list = models.Warrants.objects.filter(lending_warrant__sure__lending=lending_obj, warrant_typ__in=[1, 2]) warrant_lending_g_list = models.Warrants.objects.filter(lending_warrant__sure__lending=lending_obj, warrant_typ=5) warrant_lending_6_list = models.Warrants.objects.filter(lending_warrant__sure__lending=lending_obj, warrant_typ=6) warrant_lending_r_list = models.Warrants.objects.filter(lending_warrant__sure__lending=lending_obj, warrant_typ=11) warrant_lending_s_list = models.Warrants.objects.filter(lending_warrant__sure__lending=lending_obj, warrant_typ=21) warrant_lending_d_list = models.Warrants.objects.filter(lending_warrant__sure__lending=lending_obj, warrant_typ=31) warrant_lending_v_list = models.Warrants.objects.filter(lending_warrant__sure__lending=lending_obj, warrant_typ=41) warrant_lending_c_list = models.Warrants.objects.filter(lending_warrant__sure__lending=lending_obj, warrant_typ=51) warrant_lending_o_list = models.Warrants.objects.filter(lending_warrant__sure__lending=lending_obj, warrant_typ=55) '''他权情况''' hypothec_agree_list = models.Hypothecs.objects.filter(agree=agree_obj) form_storage_add_edit = forms.StoragesAddEidtForm(initial={'storage_date': str(datetime.date.today())}) return render(request, 'dbms/warrant/warrant-agree-scan.html', locals())
def dun(request, *args, **kwargs): # current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '追偿列表' dun_stage_list = models.Dun.DUN_STAGE_LIST dun_list = models.Dun.objects.filter(**kwargs).order_by('title') '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = [ 'title', # 追偿项目编号 'compensatory__provide__notify__agree__lending__summary__summary_num', # 纪要编号 'compensatory__provide__notify__agree__lending__summary__custom__name', # 客户名称 'compensatory__provide__notify__agree__lending__summary__custom__short_name', # 客户名称 'compensatory__provide__notify__agree__agree_num', # 委托担保合同编号 'compensatory__provide__notify__agree__branch__name', # 放款银行 'compensatory__provide__notify__agree__branch__short_name', # 放款银行 ] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) dun_list = dun_list.filter(q) dun_amount = dun_list.aggregate( Sum('dun_amount'))['dun_amount__sum'] # 追偿总额 if dun_amount: dun_amount = round(dun_amount, 2) else: dun_amount = 0 dun_retrieve_sun = dun_list.aggregate( Sum('dun_retrieve_sun'))['dun_retrieve_sun__sum'] # 回收总额 if dun_retrieve_sun: dun_retrieve_sun = round(dun_retrieve_sun, 2) else: dun_retrieve_sun = 0 dun_charge_sun = dun_list.aggregate( Sum('dun_charge_sun'))['dun_charge_sun__sum'] # 费用总额 if dun_charge_sun: dun_charge_sun = round(dun_charge_sun, 2) else: dun_charge_sun = 0 compensatory_amount = dun_list.count() # 信息数目 '''分页''' paginator = Paginator(dun_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) form_dun_add = forms.FormDunAdd() # 联系人 return render(request, 'dbms/dun/dun.html', locals())
def classification(request, *args, **kwargs): # 分类列表 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() job_list = request.session.get('job_list') # 获取当前用户的所有角色 PAGE_TITLE = '分类列表' if kwargs: fication = kwargs['fication'] else: fication = 0 '''PROVIDE_STATUS_LIST = [(1, '在保'), (11, '解保'), (21, '代偿')]''' FICATION_LIST = [(11, '正常'), (21, '关注'), (31, '次级'), (41, '可疑'), (51, '损失')] # 筛选条件 '''筛选''' provide_list = models.Provides.objects.filter(provide_balance__gt=0) provide_list = provide_list.filter( **kwargs).select_related('notify').order_by('-provide_date') provide_list = provide_list_screen(provide_list, request) '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = [ 'notify__agree__lending__summary__custom__name', 'notify__agree__lending__summary__custom__short_name', 'notify__agree__branch__name', 'notify__agree__branch__short_name', 'notify__agree__agree_num' ] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) provide_list = provide_list.filter(q) balance = provide_list.aggregate( Sum('provide_balance'))['provide_balance__sum'] # 在保余额 provide_acount = provide_list.count() '''分页''' paginator = Paginator(provide_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) today_str = str(datetime.date.today()) form_fication = forms.FormFicationAdd(initial={'fic_date': today_str}) form_fication_all_data = { 'fic_date': today_str, 'fication': fication, } form_fication_all = forms.FormFicationAll(initial=form_fication_all_data) return render(request, 'dbms/review/classification.html', locals())
def cooperative(request, *args, **kwargs): # 合作机构 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '合作机构' COOPERATOR_TYPE_LIST = models.Cooperators.COOPERATOR_TYPE_LIST cooperator_list = models.Cooperators.objects.filter(**kwargs).order_by( '-flow_credit', '-flow_limit') '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = [ 'name', # 追偿项目编号 'short_name', # 客户名称 ] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) cooperator_list = cooperator_list.filter(q) flow_credit_amount = cooperator_list.aggregate( Sum('flow_credit'))['flow_credit__sum'] # 综合额度 if flow_credit_amount: flow_credit_amount = round(flow_credit_amount, 2) else: flow_credit_amount = 0 back_credit_amount = cooperator_list.aggregate( Sum('back_credit'))['back_credit__sum'] # 保函额度 if back_credit_amount: back_credit_amount = round(back_credit_amount, 2) else: back_credit_amount = 0 flow_amount = cooperator_list.aggregate( Sum('cooperator_flow'))['cooperator_flow__sum'] # 流贷余额 accept_amount = cooperator_list.aggregate( Sum('cooperator_accept'))['cooperator_accept__sum'] # 承兑余额 back_amount = cooperator_list.aggregate( Sum('cooperator_back'))['cooperator_back__sum'] # 保函余额 balance = cooperator_list.aggregate(Sum('amount'))['amount__sum'] # 保函余额 compensatory_amount = cooperator_list.count() # 信息数目 ####分页信息### paginator = Paginator(cooperator_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/external/cooperative.html', locals())
def agreement_add_ajax(request): # 合作协议ajax current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() response = { 'status': True, 'message': None, 'forme': None, } post_data_str = request.POST.get('postDataStr') post_data = json.loads(post_data_str) cooperator_list = models.Cooperators.objects.filter( id=post_data['cooperator_id']) cooperator_obj = cooperator_list.first() cooperator_state = cooperator_obj.cooperator_state '''COOPERATOR_STATE_LIST = ((1, '正常'), (11, '注销'))''' form_agreement_add = forms.FormAgreementAdd(post_data) if form_agreement_add.is_valid(): if cooperator_state == 1: agreement_cleaned = form_agreement_add.cleaned_data flow_credit = round(agreement_cleaned['flow_credit'], 2) flow_limit = round(agreement_cleaned['flow_limit'], 2) back_credit = round(agreement_cleaned['back_credit'], 2) back_limit = round(agreement_cleaned['back_limit'], 2) credit_date = agreement_cleaned['credit_date'] due_date = agreement_cleaned['due_date'] try: with transaction.atomic(): agreement_obj = models.Agreements.objects.create( cooperator=cooperator_obj, flow_credit=flow_credit, flow_limit=flow_limit, back_credit=back_credit, back_limit=back_limit, credit_date=credit_date, due_date=due_date, agreementor=request.user) cooperator_list.update(flow_credit=flow_credit, flow_limit=flow_limit, back_credit=back_credit, back_limit=back_limit, credit_date=credit_date, due_date=due_date) response['message'] = '合作协议添加成功!' except Exception as e: response['status'] = False response['message'] = '合作协议添加失败:%s' % str(e) else: response['status'] = False response['message'] = '状态为:%s,合作协议添加失败' % cooperator_state else: response['status'] = False response['message'] = '表单信息有误!!!' response['forme'] = form_agreement_add.errors result = json.dumps(response, ensure_ascii=False) return HttpResponse(result)
def agree_preview(request, agree_id): current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() agree_obj = models.Agrees.objects.get(id=agree_id) AGREE_TYP_D = models.Agrees.AGREE_TYP_D # 担保公司合同类型 AGREE_TYP_X = models.Agrees.AGREE_TYP_X # 小贷公司合同类型 agree_amount_cn = convert(agree_obj.agree_amount) # 转换为金额大写 agree_amount_str = amount_s(agree_obj.agree_amount) # 元转换为万元并去掉小数点后面的零 agree_amount_y = amount_y(agree_obj.agree_amount) # 元转换为万元并去掉小数点后面的零 agree_term_cn = convert_num(agree_obj.agree_term) # 合同期限转大写 agree_copy_cn = convert_num(agree_obj.agree_copies) UN, ADD, CNB = un_dex(agree_obj.agree_typ) # 不同合同种类下主体适用 if agree_obj.agree_typ in [ 22, ]: # (22, 'D-公司保函'), page_home_y_y = '申请人(乙方)' page_home_y_j = '担保人(甲方)' elif agree_obj.agree_typ in [ 21, ]: # (21, 'D-分离式保函'), page_home_y_y = '乙方' page_home_y_j = '甲方' else: page_home_y_y = '被担保人(乙方)' page_home_y_j = '担保人(甲方)' notarization_typ = False # 是否公证 if agree_obj.agree_typ in [1, 2, 3, 4, 21, 22, 23]: agree_copy_jy_cn = convert_num(agree_obj.agree_copies - 2) else: notarization_typ = True agree_copy_jy_cn = convert_num(agree_obj.agree_copies - 3) '''利率(费率)处理''' agree_rate_cn_q = '' try: rate_b = True single_quota_rate = float(agree_obj.agree_rate) charge = round(agree_obj.agree_amount * single_quota_rate / 100, 2) agree_rate_cn_q = convert_num(float( agree_obj.agree_rate)) # 合同利率转换为千分之,大写 agree_rate_p = round(((20 - float(agree_obj.agree_rate)) / 30 * 10), 4) agree_rate_w = convert_num_4(agree_rate_p) charge_cn = convert(charge) except ValueError: rate_b = False single_quota_rate = agree_obj.agree_rate agree_rate_cn_q = agree_obj.agree_rate agree_rate_w = '叁点叁叁叁叁' return render(request, 'dbms/agree/preview-agree.html', locals())
def employee_scan(request, employee_id): # 查看用户 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '用户详情' employee_list = models.Employees.objects.filter(id=employee_id) employee_obj = employee_list.first() return render(request, 'dbms/employee/employee-scan.html', locals())
def warrant(request, *args, **kwargs): # 权证列表 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITAL = '权证列表' add_warrant = '添加权证' warrant_typ_n = 0 '''WARRANT_STATE_LIST = ( (1, '未入库'), (2, '已入库'), (6, '无需入库'), (11, '续抵出库'), (21, '已借出'), (31, '解保出库'), (99, '已注销'))''' ''' WARRANT_TYP_LIST = [ (1, '房产'), (2, '房产包'), (5, '土地使用权'), (6, '在建工程'), (11, '应收账款'), (21, '股权'), (31, '票据'), (41, '车辆'), (51, '动产'), (55, '其他'), (99, '他权')]''' '''模态框''' form_warrant_add = forms.WarrantAddForm() # 权证添加 form_house_add_edit = forms.HouseAddEidtForm() # 房产添加 form_ground_add_edit = forms.GroundAddEidtForm() # 土地添加 form_construct_add_edit = forms.ConstructionAddForm() # 在建工程 form_receivable_add = forms.FormReceivable() # 应收添加 form_stockes_add_edit = forms.FormStockes() # 21股权添加 form_draft_add_eidt = forms.FormDraft() # 31票据添加 form_vehicle_add_eidt = forms.FormVehicle() # 41车辆添加 form_chattel_add_eidt = forms.FormChattel() # 51动产添加 form_other_add_eidt = forms.FormOthers() # 55其他添加 form_other_add_eidt_41 = forms.FormOthers41() # 55其他添加 form_hypothecs_add_eidt = forms.HypothecsAddEidtForm() # 99他权添加 warrant_typ_list = models.Warrants.WARRANT_TYP_LIST # 筛选条件 '''筛选''' warrant_list = models.Warrants.objects.filter(**kwargs).order_by('warrant_num') warrant_list = warrant_list_screen(warrant_list, request) '''搜索''' search_key = request.GET.get('_s') if search_key: search_fields = ['warrant_num'] q = Q() q.connector = 'OR' for field in search_fields: q.children.append(("%s__contains" % field, search_key.strip())) warrant_list = warrant_list.filter(q) warrant_acount = warrant_list.count() '''分页''' paginator = Paginator(warrant_list, 19) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/warrant/warrant.html', locals())
def dun_scan(request, dun_id): # 查看合同 current_url_name = resolve(request.path).url_name # 获取当前URL_NAME authority_list = request.session.get('authority_list') # 获取当前用户的所有权限 menu_result = MenuHelper(request).menu_data_list() PAGE_TITLE = '追偿管理' today_str = datetime.date.today() date_th_later = today_str + datetime.timedelta(days=365) dun_obj = models.Dun.objects.get(id=dun_id) from_clue_add = forms.FormClueAdd() # 财产线索 from_custom_add = forms.FormCustomAdd() # 被告人 from_sealup_data = { 'sealup_date': str(today_str), 'due_date': str(date_th_later) } from_sealup_add = forms.FormSealupAdd(initial=from_sealup_data) # 查封情况 from_standing_add = forms.FormStandingAdd() # 添加追偿台账 form_charge_add = forms.FormChargeAdd( initial={'charge_date': str(today_str)}) # 追偿费用 form_retrieve_add = forms.FormRetrieveAdd( initial={'retrieve_date': str(today_str)}) # 案款回收 form_inquiry_add = forms.FormInquiryAdd() # 查询 form_evaluate_add = forms.FormInquiryEvaluateAdd( initial={'evaluate_date': str(today_str)}) # 评估 form_hanging_add = forms.FormInquiryHangingAdd( initial={'auction_date': str(today_str)}) # 挂网 form_turn_add = forms.FormInquiryTurnAdd( initial={'transaction_date': str(today_str)}) # 成交 form_stage_add = forms.FormStageAdd(initial={'stage_date': str(today_str)}) # 目录 form_staff_add = forms.FormStaffAdd() # 联系人 form_agent_data = { 'agent_date': str(today_str), 'due_date': str(today_str + datetime.timedelta(days=365 * 3)) } form_agent_add = forms.FormAgentAdd(initial=form_agent_data) # 代理合同 form_judgment_add = forms.FormJudgmentAdd( initial={'judgment_date': str(today_str)}) # 判决裁定 standing_list = models.Standing.objects.filter( dun=dun_obj).order_by('-standingor_date') stage_list = models.Stage.objects.filter(dun=dun_obj) '''分页''' paginator = Paginator(standing_list, 6) page = request.GET.get('page') try: p_list = paginator.page(page) except PageNotAnInteger: p_list = paginator.page(1) except EmptyPage: p_list = paginator.page(paginator.num_pages) return render(request, 'dbms/dun/dun-scan.html', locals())