fix factors list and doble factor submit
This commit is contained in:
1 parent
c33184a996
commit
b86ccb373b
3 files changed
+317
-37
No files matched your search
+60
-6
@@ -693,14 +693,68 @@ def customerNew2(request ,c_id):
|
||||
|
||||
|
||||
@login_required(login_url='/panel/p_login/')
|
||||
def customerFactors(request ,c_id):
|
||||
customer = Customer.objects.get(id=c_id)
|
||||
def customerFactors(request, c_id):
|
||||
customer = get_object_or_404(Customer, id=c_id)
|
||||
categorys = ProductCategory.objects.all()
|
||||
factorha = Factor.objects.filter(customer__id = c_id).order_by('-create_date')
|
||||
#all_prd = serializers.serialize("json", all_prda)
|
||||
#return JsonResponse(all_prd,safe = False)
|
||||
|
||||
# کوئری پایه برای دریافت همه فاکتورهای این مشتری
|
||||
factor_qs = Factor.objects.filter(customer=customer)
|
||||
|
||||
# دریافت پارامترهای فیلتر و جستجو از آدرس URL
|
||||
search_query = request.GET.get('search_factor', '').strip()
|
||||
filter_status = request.GET.get('status', 'all')
|
||||
filter_type = request.GET.get('type', 'all')
|
||||
az_tarikh = request.GET.get('az_tarikh', '').strip()
|
||||
ta_tarikh = request.GET.get('ta_tarikh', '').strip()
|
||||
|
||||
# ۱. اعمال فیلتر جستجو (شناسه فاکتور یا متن توضیحات)
|
||||
if search_query:
|
||||
if search_query.isdigit():
|
||||
factor_qs = factor_qs.filter(models.Q(id=int(search_query)) | models.Q(desc__icontains=search_query))
|
||||
else:
|
||||
factor_qs = factor_qs.filter(models.Q(desc__icontains=search_query))
|
||||
|
||||
# ۲. اعمال فیلتر وضعیت پرداخت و حذف نرم
|
||||
if filter_status != 'all':
|
||||
if filter_status == 'deleted':
|
||||
factor_qs = factor_qs.filter(is_active=False)
|
||||
else:
|
||||
factor_qs = factor_qs.filter(pay_status=filter_status, is_active=True)
|
||||
|
||||
# ۳. اعمال فیلتر نوع فاکتور (نصب، خدمات، گارانتی)
|
||||
if filter_type != 'all':
|
||||
factor_qs = factor_qs.filter(FactorType=filter_type)
|
||||
|
||||
# ۴. اعمال فیلتر تاریخ شروع (از تاریخ)
|
||||
if az_tarikh:
|
||||
az_gregorian = _parse_jalali_date(az_tarikh)
|
||||
if az_gregorian:
|
||||
az_datetime = datetime.datetime.combine(az_gregorian, datetime.time.min)
|
||||
factor_qs = factor_qs.filter(create_date__gte=az_datetime)
|
||||
|
||||
# ۵. اعمال فیلتر تاریخ پایان (تا تاریخ)
|
||||
if ta_tarikh:
|
||||
ta_gregorian = _parse_jalali_date(ta_tarikh)
|
||||
if ta_gregorian:
|
||||
ta_datetime = datetime.datetime.combine(ta_gregorian, datetime.time.max)
|
||||
factor_qs = factor_qs.filter(create_date__lte=ta_datetime)
|
||||
|
||||
# مرتبسازی بر اساس آخرین تاریخ ایجاد
|
||||
factorha = factor_qs.order_by('-create_date')
|
||||
|
||||
dateNow = datetime.datetime.now().date
|
||||
data = {'customer': customer, 'categorys': categorys, 'dateNow': dateNow, 'factorha': factorha}
|
||||
|
||||
data = {
|
||||
'customer': customer,
|
||||
'categorys': categorys,
|
||||
'dateNow': dateNow,
|
||||
'factorha': factorha,
|
||||
'search_query': search_query,
|
||||
'filter_status': filter_status,
|
||||
'filter_type': filter_type,
|
||||
'az_tarikh': az_tarikh,
|
||||
'ta_tarikh': ta_tarikh
|
||||
}
|
||||
return render(request, 'admin_panel/customerIDFactor.html', data)
|
||||
|
||||
@login_required(login_url='/panel/p_login/')
|
||||
|
||||
Reference in new issue
Block a user