333 lines
11 KiB
Python
333 lines
11 KiB
Python
from django.contrib.auth.decorators import login_required, permission_required
|
||
from django.shortcuts import render
|
||
from django.urls import reverse
|
||
|
||
from common.utils.page_helper import paginate_query_and_assign_numbers
|
||
from .models import *
|
||
|
||
|
||
@login_required
|
||
@permission_required('exec_tbl.view_financialdata', raise_exception=True)
|
||
def financial_data_list_view(request):
|
||
# 声明查询集
|
||
query_set = FinancialData.objects.all().order_by('-year')
|
||
|
||
# 获取查询参数
|
||
year = request.GET.get('year', '')
|
||
|
||
# 根据提供的参数进行筛选
|
||
if year:
|
||
query_set = query_set.filter(year__icontains=year)
|
||
|
||
# 对查询结果进行分页,每页10条记录
|
||
items = paginate_query_and_assign_numbers(
|
||
request=request,
|
||
queryset=query_set,
|
||
per_page=10
|
||
)
|
||
|
||
# 构建上下文查询参数字符串
|
||
query_params = '&year={}'.format(year)
|
||
|
||
# 准备上下文
|
||
context = {
|
||
'items': items,
|
||
'query_params': query_params,
|
||
'model_config': 'exec_tbl.FinancialData',
|
||
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "董事会、总经办", "name": "index"},
|
||
{"title": "公司整体经营情况", "name": "financial_data_list"}],
|
||
'filters': [
|
||
{"type": "text", "id": "year", "name": "year", "label": "年份", "placeholder": "请输入年份"}
|
||
],
|
||
"table_exclude_field_name": ['id'],
|
||
'form_action_url': 'financial_data_list'
|
||
}
|
||
|
||
return render(request, 'view_list.html', context)
|
||
|
||
|
||
@login_required
|
||
@permission_required('exec_tbl.view_monthlyfinancialdata', raise_exception=True)
|
||
def monthly_financial_data_list_view(request):
|
||
# 声明查询集
|
||
query_set = MonthlyFinancialData.objects.all().order_by('-year_month')
|
||
|
||
# 获取查询参数
|
||
year_month = request.GET.get('year_month', '')
|
||
|
||
# 根据提供的参数进行筛选
|
||
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 = '&year_month={}'.format(year_month)
|
||
|
||
# 准备上下文
|
||
context = {
|
||
'items': items,
|
||
'query_params': query_params,
|
||
'model_config': 'exec_tbl.MonthlyFinancialData',
|
||
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "董事会、总经办", "name": "index"},
|
||
{"title": "公司整体收入情况", "name": "monthly_financial_data_list"}],
|
||
'filters': [
|
||
{"type": "text", "id": "year_month", "name": "year_month", "label": "年月", "placeholder": "请输入年月"}
|
||
],
|
||
"table_exclude_field_name": ['id'],
|
||
'form_action_url': 'monthly_financial_data_list'
|
||
}
|
||
|
||
return render(request, 'view_list.html', context)
|
||
|
||
|
||
@login_required
|
||
@permission_required('exec_tbl.view_receivablesdata', raise_exception=True)
|
||
def receivables_data_list_view(request):
|
||
# 声明查询集
|
||
query_set = ReceivablesData.objects.all().order_by('-total_receivables')
|
||
|
||
# 获取查询参数
|
||
total_receivables = request.GET.get('total_receivables', '')
|
||
|
||
# 根据提供的参数进行筛选
|
||
if total_receivables:
|
||
query_set = query_set.filter(total_receivables__icontains=total_receivables)
|
||
|
||
# 对查询结果进行分页,每页10条记录
|
||
items = paginate_query_and_assign_numbers(
|
||
request=request,
|
||
queryset=query_set,
|
||
per_page=10
|
||
)
|
||
|
||
# 构建上下文查询参数字符串
|
||
query_params = '&total_receivables={}'.format(total_receivables)
|
||
|
||
# 准备上下文
|
||
context = {
|
||
'items': items,
|
||
'query_params': query_params,
|
||
'model_config': 'exec_tbl.ReceivablesData',
|
||
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "董事会、总经办", "name": "index"},
|
||
{"title": "公司应收账款情况", "name": "receivables_data_list"}],
|
||
'filters': [
|
||
{"type": "number", "id": "total_receivables", "name": "total_receivables", "label": "应收账款总额",
|
||
"placeholder": "请输入应收账款总额"}
|
||
],
|
||
"table_exclude_field_name": ['id'],
|
||
'form_action_url': 'receivables_data_list'
|
||
}
|
||
|
||
return render(request, 'view_list.html', context)
|
||
|
||
|
||
@login_required
|
||
@permission_required('exec_tbl.view_receivablesdetail', raise_exception=True)
|
||
def receivables_detail_list_view(request):
|
||
# 声明查询集
|
||
query_set = ReceivablesDetail.objects.all().order_by('-outstanding_amount')
|
||
|
||
# 获取查询参数
|
||
project_name = request.GET.get('project_name', '')
|
||
|
||
# 根据提供的参数进行筛选
|
||
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 = '&project_name={}'.format(project_name)
|
||
|
||
# 准备上下文
|
||
context = {
|
||
'items': items,
|
||
'query_params': query_params,
|
||
'model_config': 'exec_tbl.ReceivablesDetail',
|
||
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "董事会、总经办", "name": "index"},
|
||
{"title": "公司应收账款明细", "name": "receivables_detail_list"}],
|
||
'filters': [
|
||
{"type": "text", "id": "project_name", "name": "project_name", "label": "项目名称",
|
||
"placeholder": "请输入项目名称"}
|
||
],
|
||
"table_exclude_field_name": ['id'],
|
||
'form_action_url': 'receivables_detail_list'
|
||
}
|
||
|
||
return render(request, 'view_list.html', context)
|
||
|
||
|
||
@login_required
|
||
@permission_required('exec_tbl.view_employeesstatus', raise_exception=True)
|
||
def employee_status_list_view(request):
|
||
# 声明查询集
|
||
query_set = EmployeeStatus.objects.all().order_by('-total_employees')
|
||
|
||
# 获取查询参数
|
||
total_employees = request.GET.get('total_employees', '')
|
||
|
||
# 根据提供的参数进行筛选
|
||
if total_employees:
|
||
query_set = query_set.filter(total_employees__icontains=total_employees)
|
||
|
||
# 对查询结果进行分页,每页10条记录
|
||
items = paginate_query_and_assign_numbers(
|
||
request=request,
|
||
queryset=query_set,
|
||
per_page=10
|
||
)
|
||
|
||
# 构建上下文查询参数字符串
|
||
query_params = '&total_employees={}'.format(total_employees)
|
||
|
||
# 准备上下文
|
||
context = {
|
||
'items': items,
|
||
'query_params': query_params,
|
||
'model_config': 'exec_tbl.EmployeeStatus',
|
||
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "董事会、总经办", "name": "index"},
|
||
{"title": "公司人员情况", "name": "employee_status_list"}],
|
||
'filters': [
|
||
{"type": "text", "id": "total_employees", "name": "total_employees", "label": "员工总数",
|
||
"placeholder": "请输入员工总数"}
|
||
],
|
||
"table_exclude_field_name": ['id'],
|
||
'form_action_url': 'employee_status_list'
|
||
}
|
||
|
||
return render(request, 'view_list.html', context)
|
||
|
||
|
||
@login_required
|
||
@permission_required('exec_tbl.view_employeesperformance', raise_exception=True)
|
||
def employee_performance_list_view(request):
|
||
# 声明查询集
|
||
query_set = EmployeePerformance.objects.all().order_by('-year')
|
||
|
||
# 获取查询参数
|
||
year = request.GET.get('year', '')
|
||
|
||
# 根据提供的参数进行筛选
|
||
if year:
|
||
query_set = query_set.filter(year__icontains(year))
|
||
|
||
# 对查询结果进行分页,每页10条记录
|
||
items = paginate_query_and_assign_numbers(
|
||
request=request,
|
||
queryset=query_set,
|
||
per_page=10
|
||
)
|
||
|
||
# 构建上下文查询参数字符串
|
||
query_params = '&year={}'.format(year)
|
||
|
||
# 准备上下文
|
||
context = {
|
||
'items': items,
|
||
'query_params': query_params,
|
||
'model_config': 'exec_tbl.EmployeePerformance',
|
||
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "董事会、总经办", "name": "index"},
|
||
{"title": "员工业绩及提成情况", "name": "employee_performance_list"}],
|
||
'filters': [
|
||
{"type": "text", "id": "year", "name": "year", "label": "年份", "placeholder": "请输入年份"}
|
||
],
|
||
"table_exclude_field_name": ['id'],
|
||
'form_action_url': 'employee_performance_list'
|
||
}
|
||
|
||
return render(request, 'view_list.html', context)
|
||
|
||
|
||
@login_required
|
||
@permission_required('exec_tbl.view_employeeattendance', raise_exception=True)
|
||
def employee_attendance_list_view(request):
|
||
# 声明查询集
|
||
query_set = EmployeeAttendance.objects.all().order_by('-name')
|
||
|
||
# 获取查询参数
|
||
name = request.GET.get('name', '')
|
||
|
||
# 根据提供的参数进行筛选
|
||
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 = '&name={}'.format(name)
|
||
|
||
# 准备上下文
|
||
context = {
|
||
'items': items,
|
||
'query_params': query_params,
|
||
'model_config': 'exec_tbl.EmployeeAttendance',
|
||
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "董事会、总经办", "name": "index"},
|
||
{"title": "员工出勤情况", "name": "employee_attendance_list"}],
|
||
'filters': [
|
||
{"type": "text", "id": "name", "name": "name", "label": "姓名", "placeholder": "请输入姓名"}
|
||
],
|
||
"table_exclude_field_name": ['id'],
|
||
'form_action_url': 'employee_attendance_list'
|
||
|
||
}
|
||
|
||
return render(request, 'view_list.html', context)
|
||
|
||
|
||
@login_required
|
||
@permission_required('exec_tbl.view_projectledger', raise_exception=True)
|
||
def project_ledger_list_view(request):
|
||
# 声明查询集
|
||
query_set = ProjectLedger.objects.all().order_by('-project_id')
|
||
|
||
# 获取查询参数
|
||
project_name = request.GET.get('project_name', '')
|
||
|
||
# 根据提供的参数进行筛选
|
||
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 = '&project_name={}'.format(project_name)
|
||
|
||
# 准备上下文
|
||
context = {
|
||
'items': items,
|
||
'query_params': query_params,
|
||
'model_config': 'exec_tbl.ProjectLedger',
|
||
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "董事会、总经办", "name": "index"},
|
||
{"title": "公司项目台账", "name": "project_ledger_list"}],
|
||
'filters': [
|
||
{"type": "text", "id": "project_name", "name": "project_name", "label": "项目名称",
|
||
"placeholder": "请输入项目名称"}
|
||
],
|
||
"table_exclude_field_name": ['id'],
|
||
'form_action_url': 'project_ledger_list'
|
||
|
||
}
|
||
|
||
return render(request, 'view_list.html', context)
|