This commit is contained in:
aminhashemi92 2025-09-29 17:38:11 +03:30
parent 810c87e2e0
commit b5bf3a5dbe
51 changed files with 2397 additions and 326 deletions

View file

@ -41,7 +41,7 @@ def dashboard(request):
@login_required
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
def customer_list(request):
# Get all profiles that have customer role
base = Profile.objects.filter(roles__slug=UserRoles.CUSTOMER.value, is_deleted=False).select_related('user')
@ -56,7 +56,7 @@ def customer_list(request):
@require_POST
@login_required
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
def add_customer_ajax(request):
"""AJAX endpoint for adding customers"""
form = CustomerForm(request.POST, request.FILES)
@ -96,7 +96,7 @@ def add_customer_ajax(request):
@require_POST
@login_required
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
def edit_customer_ajax(request, customer_id):
customer = get_object_or_404(Profile, id=customer_id)
form = CustomerForm(request.POST, request.FILES, instance=customer)
@ -148,9 +148,12 @@ def get_customer_data(request, customer_id):
form_html = {
'first_name': str(form['first_name']),
'last_name': str(form['last_name']),
'user_type': str(form['user_type']),
'phone_number_1': str(form['phone_number_1']),
'phone_number_2': str(form['phone_number_2']),
'national_code': str(form['national_code']),
'company_name': str(form['company_name']),
'company_national_id': str(form['company_national_id']),
'card_number': str(form['card_number']),
'account_number': str(form['account_number']),
'address': str(form['address']),
@ -163,9 +166,12 @@ def get_customer_data(request, customer_id):
'id': customer.id,
'first_name': customer.user.first_name,
'last_name': customer.user.last_name,
'user_type': customer.user_type or 'individual',
'phone_number_1': customer.phone_number_1 or '',
'phone_number_2': customer.phone_number_2 or '',
'national_code': customer.national_code or '',
'company_name': customer.company_name or '',
'company_national_id': customer.company_national_id or '',
'card_number': customer.card_number or '',
'account_number': customer.account_number or '',
'address': customer.address or '',
@ -177,7 +183,7 @@ def get_customer_data(request, customer_id):
@require_GET
@login_required
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
def get_customer_details(request, customer_id):
"""جزئیات کامل مشترک برای نمایش در مدال"""
customer = get_object_or_404(
@ -196,6 +202,9 @@ def get_customer_details(request, customer_id):
'date_joined': customer.jcreated_date() if customer.user.date_joined else '',
},
'national_code': customer.national_code or '',
'user_type': customer.user_type or 'individual',
'company_name': customer.company_name or '',
'company_national_id': customer.company_national_id or '',
'phone_number_1': customer.phone_number_1 or '',
'phone_number_2': customer.phone_number_2 or '',
'card_number': customer.card_number or '',
@ -229,7 +238,7 @@ def get_customer_details(request, customer_id):
@require_GET
@login_required
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
def get_customer_wells(request, customer_id):
"""چاه‌های مرتبط با یک مشترک"""
customer = get_object_or_404(Profile, id=customer_id)
@ -262,7 +271,7 @@ def get_customer_wells(request, customer_id):
@require_GET
@login_required
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
def get_customer_requests(request, customer_id):
"""درخواست‌های مرتبط با یک مشترک"""
customer = get_object_or_404(Profile, id=customer_id)