XH_Digital_Management/application/busi_tbl/views.py

539 lines
21 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from django.contrib.auth.decorators import login_required
from django.shortcuts import render
from common.auth import custom_permission_required
from common.utils.page_helper import paginate_query_and_assign_numbers
from .models import *
@login_required
@custom_permission_required('busi_tbl.view_departmentannualperformance')
def department_annual_performance_list_view(request):
"""
数据视图-业务部门-年度总体经营指标
"""
# 声明查询集
query_set = DepartmentAnnualPerformance.objects.all().order_by('-year')
# 获取查询参数
year = request.GET.get('year', '')
primary_department = request.GET.get('primary_department', '')
# 根据提供的参数进行筛选
if year:
query_set = query_set.filter(year__icontains=year)
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&year={}&primary_department={}'.format(year, primary_department)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentAnnualPerformance',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "经营管理", "name": "index"},
{"title": "年度总体经营指标", "name": "department_annual_performance_list"}],
'filters': [
{"type": "text", "id": "year", "name": "year", "label": "年份", "placeholder": "请输入年份"},
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_annual_performance_list'
}
return render(request, 'view_list.html', context)
@login_required
@custom_permission_required('busi_tbl.view_departmentmonthlyincome')
def department_monthly_income_list_view(request):
"""
数据视图-业务部门-收入情况
"""
# 声明查询集
query_set = DepartmentMonthlyIncome.objects.all().order_by('-year_month')
# 获取查询参数
year_month = request.GET.get('year_month', '')
primary_department = request.GET.get('primary_department', '')
# 根据提供的参数进行筛选
if year_month:
query_set = query_set.filter(year_month__icontains=year_month)
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&year_month={}&primary_department={}'.format(year_month, primary_department)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentMonthlyIncome',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "收入管理", "name": "index"},
{"title": "收入情况", "name": "department_monthly_income_list"}],
'filters': [
{"type": "text", "id": "year_month", "name": "year_month", "label": "年月", "placeholder": "请输入年月"},
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_monthly_income_list'
}
return render(request, 'view_list.html', context)
@login_required
@custom_permission_required('busi_tbl.view_departmentmonthlycost')
def department_monthly_cost_list_view(request):
"""
数据视图-业务部门-成本情况
"""
# 声明查询集
query_set = DepartmentMonthlyCost.objects.all().order_by('-year_month')
# 获取查询参数
year_month = request.GET.get('year_month', '')
primary_department = request.GET.get('primary_department', '')
# 根据提供的参数进行筛选
if year_month:
query_set = query_set.filter(year_month__icontains=year_month)
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&year_month={}&primary_department={}'.format(year_month, primary_department)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentMonthlyCost',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "成本管理", "name": "index"},
{"title": "成本情况", "name": "department_monthly_cost_list"}],
'filters': [
{"type": "text", "id": "year_month", "name": "year_month", "label": "年月", "placeholder": "请输入年月"},
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_monthly_cost_list'
}
return render(request, 'view_list.html', context)
@login_required
@custom_permission_required('busi_tbl.view_departmentmonthlyprofit')
def department_monthly_profit_list_view(request):
"""
数据视图-业务部门-利润情况
"""
# 声明查询集
query_set = DepartmentMonthlyProfit.objects.all().order_by('-year_month')
# 获取查询参数
year_month = request.GET.get('year_month', '')
primary_department = request.GET.get('primary_department', '')
# 根据提供的参数进行筛选
if year_month:
query_set = query_set.filter(year_month__icontains=year_month)
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&year_month={}&primary_department={}'.format(year_month, primary_department)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentMonthlyProfit',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "利润管理", "name": "index"},
{"title": "利润情况", "name": "department_monthly_profit_list"}],
'filters': [
{"type": "text", "id": "year_month", "name": "year_month", "label": "年月", "placeholder": "请输入年月"},
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_monthly_profit_list'
}
return render(request, 'view_list.html', context)
@login_required
@custom_permission_required('busi_tbl.view_departmentprojectprogress')
def department_project_progress_list_view(request):
"""
数据视图-业务部门-项目进度
"""
# 声明查询集
query_set = DepartmentProjectProgress.objects.all().order_by('-contract_date')
# 获取查询参数
primary_department = request.GET.get('primary_department', '')
project_name = request.GET.get('project_name', '')
# 根据提供的参数进行筛选
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
if project_name:
query_set = query_set.filter(project_name__icontains=project_name)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&primary_department={}&project_name={}'.format(primary_department, project_name)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentProjectProgress',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "项目管理", "name": "index"},
{"title": "项目进度", "name": "department_project_progress_list"}],
'filters': [
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"},
{"type": "text", "id": "project_name", "name": "project_name", "label": "项目名称",
"placeholder": "请输入项目名称"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_project_progress_list'
}
return render(request, 'view_list.html', context)
@login_required
@custom_permission_required('busi_tbl.view_departmentprojectsettlement')
def department_project_settlement_list_view(request):
"""
数据视图-业务部门-项目结算情况
"""
# 声明查询集
query_set = DepartmentProjectSettlement.objects.all().order_by('-primary_department')
# 获取查询参数
primary_department = request.GET.get('primary_department', '')
project_name = request.GET.get('project_name', '')
# 根据提供的参数进行筛选
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
if project_name:
query_set = query_set.filter(project_name__icontains=project_name)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&primary_department={}&project_name={}'.format(primary_department, project_name)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentProjectSettlement',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "项目管理", "name": "index"},
{"title": "项目结算情况", "name": "department_project_settlement_list"}],
'filters': [
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"},
{"type": "text", "id": "project_name", "name": "project_name", "label": "项目名称",
"placeholder": "请输入项目名称"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_project_settlement_list'
}
return render(request, 'view_list.html', context)
@login_required
@custom_permission_required('busi_tbl.view_departmentprojectpayment')
def department_project_payment_list_view(request):
"""
数据视图-业务部门-项目回款情况
"""
# 声明查询集
query_set = DepartmentProjectPayment.objects.all().order_by('-primary_department')
# 获取查询参数
primary_department = request.GET.get('primary_department', '')
project_name = request.GET.get('project_name', '')
# 根据提供的参数进行筛选
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
if project_name:
query_set = query_set.filter(project_name__icontains=project_name)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&primary_department={}&project_name={}'.format(primary_department, project_name)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentProjectPayment',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "项目管理", "name": "index"},
{"title": "项目回款情况", "name": "department_project_payment_list"}],
'filters': [
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"},
{"type": "text", "id": "project_name", "name": "project_name", "label": "项目名称",
"placeholder": "请输入项目名称"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_project_payment_list'
}
return render(request, 'view_list.html', context)
@login_required
@custom_permission_required('busi_tbl.view_departmentrevenuestructure')
def department_revenue_structure_list_view(request):
"""
数据视图-业务部门-收入结构
"""
# 声明查询集
query_set = DepartmentRevenueStructure.objects.all().order_by('-year_month')
# 获取查询参数
primary_department = request.GET.get('primary_department', '')
year_month = request.GET.get('year_month', '')
# 根据提供的参数进行筛选
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
if year_month:
query_set = query_set.filter(year_month__icontains=year_month)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&primary_department={}&year_month={}'.format(primary_department, year_month)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentRevenueStructure',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "收入管理", "name": "index"},
{"title": "收入结构", "name": "department_revenue_structure_list"}],
'filters': [
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"},
{"type": "text", "id": "year_month", "name": "year_month", "label": "年月", "placeholder": "请输入年月"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_revenue_structure_list'
}
return render(request, 'view_list.html', context)
@login_required
@custom_permission_required('busi_tbl.view_departmentprofitstructure')
def department_profit_structure_list_view(request):
"""
数据视图-业务部门-利润结构
"""
# 声明查询集
query_set = DepartmentProfitStructure.objects.all().order_by('-year_month')
# 获取查询参数
primary_department = request.GET.get('primary_department', '')
year_month = request.GET.get('year_month', '')
# 根据提供的参数进行筛选
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
if year_month:
query_set = query_set.filter(year_month__icontains=year_month)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&primary_department={}&year_month={}'.format(primary_department, year_month)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentProfitStructure',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "利润管理", "name": "index"},
{"title": "利润结构", "name": "department_profit_structure_list"}],
'filters': [
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"},
{"type": "text", "id": "year_month", "name": "year_month", "label": "年月", "placeholder": "请输入年月"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_profit_structure_list'
}
return render(request, 'view_list.html', context)
@login_required
@custom_permission_required('busi_tbl.view_departmentprojectmanagerincomecommission')
def department_project_manager_income_commission_list_view(request):
"""
数据视图-业务部门-项目经理收入完成及提成情况
"""
# 声明查询集
query_set = DepartmentProjectManagerIncomeCommission.objects.all().order_by('-year_month')
# 获取查询参数
primary_department = request.GET.get('primary_department', '')
name = request.GET.get('name', '')
# 根据提供的参数进行筛选
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
if name:
query_set = query_set.filter(name__icontains=name)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&primary_department={}&name={}'.format(primary_department, name)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentProjectManagerIncomeCommission',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "收入管理", "name": "index"},
{"title": "项目经理收入完成及提成情况",
"name": "department_project_manager_income_commission_list"}],
'filters': [
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"},
{"type": "text", "id": "name", "name": "name", "label": "姓名", "placeholder": "请输入姓名"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_project_manager_income_commission_list'
}
return render(request, 'view_list.html', context)
@login_required
@custom_permission_required('busi_tbl.view_departmentattendance')
def department_attendance_list_view(request):
"""
数据视图-业务部门-出勤情况
"""
# 声明查询集
query_set = DepartmentAttendance.objects.all().order_by('-year_month')
# 获取查询参数
primary_department = request.GET.get('primary_department', '')
year_month = request.GET.get('year_month', '')
# 根据提供的参数进行筛选
if primary_department:
query_set = query_set.filter(primary_department__icontains=primary_department)
if year_month:
query_set = query_set.filter(year_month__icontains=year_month)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&primary_department={}&year_month={}'.format(primary_department, year_month)
# 准备上下文
context = {
'items': items,
'query_params': query_params,
'model_config': 'busi_tbl.DepartmentAttendance',
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "考勤管理", "name": "index"},
{"title": "出勤情况", "name": "department_attendance_list"}],
'filters': [
{"type": "text", "id": "primary_department", "name": "primary_department", "label": "一级部门",
"placeholder": "请输入一级部门"},
{"type": "text", "id": "year_month", "name": "year_month", "label": "年月", "placeholder": "请输入年月"}
],
"table_exclude_field_name": ['id'],
'form_action_url': 'department_attendance_list'
}
return render(request, 'view_list.html', context)