2024-05-15 18:41:23 +08:00
|
|
|
|
from django.shortcuts import render
|
|
|
|
|
|
2024-05-31 20:17:40 +08:00
|
|
|
|
from application.pjt_mgnt.models import *
|
|
|
|
|
from common.utils.page_helper import paginate_query_and_assign_numbers
|
2024-05-29 09:27:39 +08:00
|
|
|
|
|
|
|
|
|
|
2024-05-31 20:17:40 +08:00
|
|
|
|
def proj_ledger_list_view(request):
|
|
|
|
|
# 声明查询集
|
|
|
|
|
query_set = ProjectLedger.objects.filter().order_by('-project_id')
|
2024-05-29 09:27:39 +08:00
|
|
|
|
|
2024-05-31 20:17:40 +08:00
|
|
|
|
# 获取查询参数
|
|
|
|
|
project_name = request.GET.get('project_name', '')
|
|
|
|
|
customer_name = request.GET.get('customer_name', '')
|
|
|
|
|
|
|
|
|
|
# 根据提供的参数进行筛选
|
|
|
|
|
if request.GET.get('project_name', ''):
|
|
|
|
|
query_set = query_set.filter(project_name__icontains=request.GET.get('project_name', ''))
|
|
|
|
|
if request.GET.get('customer_name', ''):
|
|
|
|
|
query_set = query_set.filter(customer_name__icontains=request.GET.get('customer_name', ''))
|
|
|
|
|
|
|
|
|
|
# 对查询结果进行分页,每页10条记录
|
|
|
|
|
items = paginate_query_and_assign_numbers(
|
|
|
|
|
request=request,
|
|
|
|
|
queryset=query_set,
|
|
|
|
|
per_page=10
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# 构建上下文查询参数字符串
|
|
|
|
|
query_params = '&project_name={}' + format(project_name) + '&customer_name={}' + format(customer_name)
|
|
|
|
|
|
|
|
|
|
# 准备上下文
|
|
|
|
|
context = {
|
|
|
|
|
'items': items,
|
2024-06-04 16:50:30 +08:00
|
|
|
|
'list_key': 'project_id',
|
2024-05-31 20:17:40 +08:00
|
|
|
|
'filters': [{"type": "text", "id": "project_name", "name": "project_name", "label": "项目名称",
|
|
|
|
|
"placeholder": "请输入项目名称"},
|
|
|
|
|
{"type": "text", "id": "customer_name", "name": "customer_name", "label": "客户名称",
|
|
|
|
|
"placeholder": "请输入客户名称"}],
|
|
|
|
|
'form_action_url': 'proj_ledger_list',
|
|
|
|
|
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "项目管理", "name": "index"},
|
|
|
|
|
{"title": "项目台账", "name": "proj_ledger_list"}],
|
|
|
|
|
'query_params': query_params,
|
|
|
|
|
'table_columns': [{"header": "项目编号", "field": "project_id"},
|
|
|
|
|
{"header": "项目名称", "field": "project_name"},
|
|
|
|
|
{"header": "开始日期", "field": "start_date"}, {"header": "结束日期", "field": "end_date"},
|
|
|
|
|
{"header": "一级部门", "field": "primary_department"},
|
|
|
|
|
{"header": "客户名称", "field": "customer_name"}, {"header": "省", "field": "province"},
|
|
|
|
|
{"header": "市", "field": "city"}, {"header": "区县", "field": "district"},
|
|
|
|
|
{"header": "负责人", "field": "project_leader"},
|
|
|
|
|
{"header": "项目组员", "field": "project_members"},
|
|
|
|
|
{"header": "项目状态", "field": "project_status"},
|
|
|
|
|
{"header": "资源类型", "field": "resource_type"},
|
|
|
|
|
{"header": "项目性质", "field": "project_nature"},
|
|
|
|
|
{"header": "项目进度", "field": "project_progress"},
|
|
|
|
|
{"header": "签约时间", "field": "contract_date"},
|
|
|
|
|
{"header": "标的金额", "field": "contract_amount"},
|
|
|
|
|
{"header": "合同费率", "field": "contract_rate"}, {"header": "收入", "field": "revenue"},
|
|
|
|
|
{"header": "成本费率", "field": "cost_rate"}, {"header": "成本", "field": "cost"},
|
|
|
|
|
{"header": "净收入", "field": "net_income"},
|
|
|
|
|
{"header": "价税合计金额", "field": "total_amount_including_tax"},
|
|
|
|
|
{"header": "回款金额", "field": "repayment_amount"},
|
|
|
|
|
{"header": "应收净收入", "field": "receivable_net_income"},
|
|
|
|
|
{"header": "实收净收入", "field": "actual_net_income"},
|
|
|
|
|
{"header": "待收净收入", "field": "outstanding_net_income"},
|
|
|
|
|
{"header": "备注", "field": "notes"}, {"header": "操作", "field": "actions"}],
|
|
|
|
|
'show_modify_button': True,
|
|
|
|
|
'show_add_button': True,
|
|
|
|
|
'show_download_button': True,
|
|
|
|
|
'show_upload_button': True,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return render(request, 'pjt_mgnt/proj_ledger_list.html', context)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def emp_proj_income_list_view(request):
|
|
|
|
|
# 声明查询集
|
|
|
|
|
query_set = EmployeeProjectIncomeSettlement.objects.filter().order_by('-record_id')
|
|
|
|
|
|
|
|
|
|
# 获取查询参数
|
|
|
|
|
project_name = request.GET.get('project_name', '')
|
|
|
|
|
year_month = request.GET.get('year_month', '')
|
|
|
|
|
|
|
|
|
|
# 根据提供的参数进行筛选
|
|
|
|
|
if request.GET.get('project_name', ''):
|
|
|
|
|
query_set = query_set.filter(project_name__icontains=request.GET.get('project_name', ''))
|
|
|
|
|
if request.GET.get('year_month', ''):
|
|
|
|
|
query_set = query_set.filter(year_month__icontains=request.GET.get('year_month', ''))
|
|
|
|
|
|
|
|
|
|
# 对查询结果进行分页,每页10条记录
|
|
|
|
|
items = paginate_query_and_assign_numbers(
|
|
|
|
|
request=request,
|
|
|
|
|
queryset=query_set,
|
|
|
|
|
per_page=10
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# 构建上下文查询参数字符串
|
|
|
|
|
query_params = '&project_name={}' + format(project_name) + '&year_month={}' + format(year_month)
|
|
|
|
|
|
|
|
|
|
# 准备上下文
|
|
|
|
|
context = {
|
|
|
|
|
'items': items,
|
2024-06-04 16:50:30 +08:00
|
|
|
|
'list_key': 'record_id',
|
2024-05-31 20:17:40 +08:00
|
|
|
|
'filters': [{"type": "text", "id": "project_name", "name": "project_name", "label": "项目名称",
|
|
|
|
|
"placeholder": "请输入项目名称"},
|
|
|
|
|
{"type": "text", "id": "year_month", "name": "year_month", "label": "年月",
|
|
|
|
|
"placeholder": "请输入年月"}],
|
|
|
|
|
'form_action_url': 'emp_proj_income_list',
|
|
|
|
|
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "项目管理", "name": "index"},
|
|
|
|
|
{"title": "项目组员收入结算表", "name": "emp_proj_income_list"}],
|
|
|
|
|
'query_params': query_params,
|
|
|
|
|
'table_columns': [{"header": "记录ID", "field": "record_id"}, {"header": "项目名称", "field": "project_name"},
|
|
|
|
|
{"header": "年月", "field": "year_month"}, {"header": "操作", "field": "actions"}],
|
|
|
|
|
'show_modify_button': True,
|
|
|
|
|
'show_add_button': True,
|
|
|
|
|
'show_download_button': True,
|
|
|
|
|
'show_upload_button': True,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return render(request, 'pjt_mgnt/emp_proj_income_list.html', context)
|