# backend/modules/task_management/tasks.py from celery import shared_task from .models import Task from django.contrib.auth import get_user_model from modules.fleet.models import Vehicle, WorkOrder @shared_task def create_task_from_invoice(invoice_data): """ Ovaj zadatak se poziva asinkrono. """ User = get_user_model() # Logika: dodijeli zadatak adminu ako je račun veći od 1000 amount = float(invoice_data.get('amount', 0)) admin_user = User.objects.filter(is_staff=True).first() work_order = None vehicle = None work_order_id = invoice_data.get('work_order_id') vehicle_id = invoice_data.get('vehicle_id') if work_order_id: work_order = WorkOrder.objects.filter(pk=work_order_id).first() if work_order: vehicle = work_order.vehicle if vehicle is None and vehicle_id: vehicle = Vehicle.objects.filter(pk=vehicle_id).first() if amount > 1000: Task.objects.create( title=f"Provjera računa: {invoice_data['invoice_number']}", description=f"Račun iznosi {amount}, potrebna revizija.", assigned_to=admin_user, status='aktivan', vehicle=vehicle, work_order=work_order, )