This commit is contained in:
37
backend/modules/task_management/tasks.py
Normal file
37
backend/modules/task_management/tasks.py
Normal file
@@ -0,0 +1,37 @@
|
||||
# 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,
|
||||
)
|
||||
Reference in New Issue
Block a user