Files
004.erp.generic/backend/modules/task_management/tasks.py
mariomitte 5d39e048ba
Some checks failed
ERP CI Pipeline / test (push) Has been cancelled
prvi kod za live uporabu
2026-07-09 21:21:17 +02:00

37 lines
1.2 KiB
Python

# 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,
)