Files
2026-06-15 10:57:28 +03:30

47 lines
1.5 KiB
Python

import time
from apps.product.models import Product as ProductModel
from apps.order.models import Order as OrderModel
from apps.emtiyazat.selector import get_emtiyaz_mojri
from rest_framework.exceptions import ValidationError
from apps.order.models import Order as OrderModel
from apps.emtiyazat.services import decrease_emtiyaz
from config.celery import app
from celery import shared_task
from utils.services.sms_task import task_send_sms
#from apps.projectcode.task import generate_code
def create_order(product_id: int, cuser) -> OrderModel:
try:
product = ProductModel.objects.get(id=product_id)
product_emtiyaz = product.get_emtiyaz
emtiyaz_mojri = get_emtiyaz_mojri(cuser)
#generate_code.delay(count=20)
if emtiyaz_mojri >= product_emtiyaz:
decrease_emtiyaz(product_emtiyaz, desc=product.name, cuser=cuser)
order = OrderModel.objects.create(
cuser_mojri=cuser,
product=product,
emtiyaz=product_emtiyaz,
name=product.name,
desc=product.desc,
price=product.price
)
message = f'لوله گستر گلپایگان: مجری محترم درخواست شما ثبت و درحال برسی است'
task_send_sms.delay(message=message, mobile=cuser.mobile)
return order
else:
raise ValidationError({'error': 'emtiyaz mojri not enough'})
except Exception as exp:
raise ValidationError({'error': f'error in create order {exp}'})