43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from apps.projects.models import ProjectRate, ProjectUserRate
|
|
|
|
def create_project_rate(project, amount, currency="USD"):
|
|
return ProjectRate.objects.create(
|
|
project=project,
|
|
amount=amount,
|
|
currency=currency
|
|
)
|
|
|
|
def update_project_rate(rate_instance, **kwargs):
|
|
update_fields = []
|
|
for field, value in kwargs.items():
|
|
if hasattr(rate_instance, field) and getattr(rate_instance, field) != value:
|
|
setattr(rate_instance, field, value)
|
|
update_fields.append(field)
|
|
|
|
if update_fields:
|
|
update_fields.append("updated_at")
|
|
rate_instance.save(update_fields=update_fields)
|
|
|
|
return rate_instance
|
|
|
|
def create_project_user_rate(project, user, amount, currency="USD"):
|
|
return ProjectUserRate.objects.create(
|
|
project=project,
|
|
user=user,
|
|
amount=amount,
|
|
currency=currency
|
|
)
|
|
|
|
def update_project_user_rate(user_rate_instance, **kwargs):
|
|
update_fields = []
|
|
for field, value in kwargs.items():
|
|
if hasattr(user_rate_instance, field) and getattr(user_rate_instance, field) != value:
|
|
setattr(user_rate_instance, field, value)
|
|
update_fields.append(field)
|
|
|
|
if update_fields:
|
|
update_fields.append("updated_at")
|
|
user_rate_instance.save(update_fields=update_fields)
|
|
|
|
return user_rate_instance
|