store room owner
This commit is contained in:
1 parent
c5e9b1d18a
commit
489fda27d3
6 files changed
+140
-12
No files matched your search
+16
-9
@@ -739,21 +739,28 @@ def CustomerJson(request, c_id):
|
||||
|
||||
@login_required(login_url='/panel/p_login/')
|
||||
def productMojodi(request, p_id):
|
||||
storeUser = StoreRoom.objects.get(user__id=request.user.id)
|
||||
|
||||
# ۱. تجمیع ورودی و خروجی در یک کوئری بهینه برای افزایش سرعت دیتابیس
|
||||
# پیدا کردن انبار کاربر با متد filter به جای get برای جلوگیری از کرش سیستم
|
||||
store_user = StoreRoom.objects.filter(owners=request.user).first()
|
||||
|
||||
# اگر کاربر هنوز مالک هیچ انباری نشده است
|
||||
if not store_user:
|
||||
return HttpResponse("کاربر مالکیت انبار ندارد") # یا هر مقداری که فرانتاند انتظار دارد
|
||||
|
||||
# محاسبه موجودی برای انبار پیدا شده
|
||||
totals = ProductInStore.objects.filter(
|
||||
Product__id=p_id, StoreRoom=storeUser, year=1400
|
||||
).aggregate(total_in=Sum('s_in'), total_out=Sum('s_out'))
|
||||
Product_id=p_id,
|
||||
StoreRoom=store_user,
|
||||
year=1400
|
||||
).aggregate(
|
||||
total_in=Sum('s_in'),
|
||||
total_out=Sum('s_out')
|
||||
)
|
||||
|
||||
# ۲. رفع باگ قطعی NoneType: اگر رکوردی نباشد، مقدار None را به 0 تبدیل میکند
|
||||
total_in = totals['total_in'] or 0
|
||||
total_out = totals['total_out'] or 0
|
||||
|
||||
# ۳. محاسبه دقیق موجودی بدون ریسک بروز خطای ریاضی پایتون
|
||||
mojodi_prd = total_in - total_out
|
||||
|
||||
# ۴. بازگشت خروجی دقیقاً متناسب با ساختار متنی فرانتاَند شما
|
||||
return HttpResponse(str(mojodi_prd))
|
||||
|
||||
@login_required(login_url='/panel/p_login/')
|
||||
@@ -1455,7 +1462,7 @@ def newFactor2(request, c_id):
|
||||
sar_resid_date = _parse_jalali_date(request.POST.get('sarResidDate'))
|
||||
|
||||
customer_obj = get_object_or_404(Customer, id=c_id)
|
||||
store_room = get_object_or_404(StoreRoom, user=user_op)
|
||||
store_room = get_object_or_404(StoreRoom, owners=user_op)
|
||||
|
||||
# رفع مشکل متنی/عددی در استخراج شناسه کالاها
|
||||
product_ids = []
|
||||
|
||||
Reference in new issue
Block a user