Files
ihrm/report/views/asset_report.py

79 lines
5.2 KiB
Python

from django.http import JsonResponse
from django.shortcuts import render
from django.apps import apps
if apps.is_installed("asset"):
from asset.filters import AssetFilter
from base.models import Company
from horilla_views.cbv_methods import login_required, permission_required
from asset.models import Asset
@login_required
@permission_required(perm="asset.view_asset")
def asset_report(request):
company = 'all'
selected_company = request.session.get("selected_company")
if selected_company != 'all':
company = Company.objects.filter(id=selected_company).first()
asset_filter_form = AssetFilter()
return render(request, "report/asset_report.html",{"company":company,"asset_filter_form": asset_filter_form.form,})
@login_required
@permission_required(perm="asset.view_asset")
def asset_pivot(request):
qs = Asset.objects.all()
if asset_name := request.GET.get("asset_name"):
qs = qs.filter(asset_name = asset_name)
if asset_tracking_id := request.GET.get("asset_tracking_id"):
qs = qs.filter(asset_tracking_id = asset_tracking_id)
if asset_purchase_cost := request.GET.get("asset_purchase_cost"):
qs = qs.filter(asset_purchase_cost = asset_purchase_cost)
if asset_lot_number_id := request.GET.get("asset_lot_number_id"):
qs = qs.filter(asset_lot_number_id = asset_lot_number_id)
if asset_category_id := request.GET.get("asset_category_id"):
qs = qs.filter(asset_category_id = asset_category_id)
if asset_status := request.GET.get("asset_status"):
qs = qs.filter(asset_status = asset_status)
if asset_purchase_date := request.GET.get("asset_purchase_date"):
qs = qs.filter(asset_purchase_date = asset_purchase_date)
data = list(qs.values(
"asset_name","asset_purchase_date","asset_tracking_id",
"asset_purchase_cost","asset_status","asset_category_id__asset_category_name","asset_lot_number_id__lot_number",
"expiry_date","assetassignment__assigned_by_employee_id__employee_work_info__department_id__department",
"assetassignment__assigned_by_employee_id__employee_work_info__job_position_id__job_position",
"assetassignment__assigned_by_employee_id__employee_work_info__job_role_id__job_role",
"assetassignment__assigned_by_employee_id__email","assetassignment__assigned_by_employee_id__phone",
"assetassignment__assigned_by_employee_id__gender","assetassignment__assigned_by_employee_id__employee_first_name",
"assetassignment__assigned_by_employee_id__employee_last_name","assetassignment__assigned_date",
"assetassignment__return_date","assetassignment__return_status",
))
data_list = [
{
"Asset Name" : item["asset_name"],
"Asset User": f"{item['assetassignment__assigned_by_employee_id__employee_first_name']} {item['assetassignment__assigned_by_employee_id__employee_last_name']}" if item["assetassignment__assigned_by_employee_id__employee_first_name"] or item["assetassignment__assigned_by_employee_id__employee_last_name"] else "-",
"Email":item["assetassignment__assigned_by_employee_id__email"] if item["assetassignment__assigned_by_employee_id__email"] else "-",
"Phone":item["assetassignment__assigned_by_employee_id__phone"] if item["assetassignment__assigned_by_employee_id__phone"] else "-",
"Gender":item["assetassignment__assigned_by_employee_id__gender"] if item["assetassignment__assigned_by_employee_id__gender"] else "-",
"Department":item["assetassignment__assigned_by_employee_id__employee_work_info__department_id__department"] if item["assetassignment__assigned_by_employee_id__employee_work_info__department_id__department"] else "-",
"Job Position":item["assetassignment__assigned_by_employee_id__employee_work_info__job_position_id__job_position"] if item["assetassignment__assigned_by_employee_id__employee_work_info__job_position_id__job_position"] else "-",
"Job Role":item["assetassignment__assigned_by_employee_id__employee_work_info__job_role_id__job_role"] if item["assetassignment__assigned_by_employee_id__employee_work_info__job_role_id__job_role"] else "-",
"Asset Purchce Date":item["asset_purchase_date"],
"Asset Cost":item["asset_purchase_cost"],
"Status":item["asset_status"],
"Assigned Date":item["assetassignment__assigned_date"] if item["assetassignment__assigned_date"] else "-",
"Return Date":item["assetassignment__return_date"] if item["assetassignment__return_date"] else "-",
"Return Condition":item["assetassignment__return_status"] if item["assetassignment__return_status"] else "-",
"Category":item["asset_category_id__asset_category_name"],
"Batch Number":item["asset_lot_number_id__lot_number"],
"Tracking ID":item["asset_tracking_id"],
"Expiry Date":item["expiry_date"] if item["expiry_date"] else "-",
}for item in data
]
return JsonResponse(data_list, safe=False)