store room owner

This commit is contained in:
javad committed 2026-07-05 14:32:01 +03:30
1 parent c5e9b1d18a
commit 489fda27d3
6 files changed
+140 -12

No files matched your search

+16 -9
View File
@@ -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 = []