36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
from django.db import models
|
|
from django.contrib.auth import get_user_model
|
|
from common.models import NameSlugModel, BaseModel
|
|
from accounts.models import Company
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class ContractTemplate(NameSlugModel):
|
|
body = models.TextField(verbose_name='متن قرارداد')
|
|
company = models.ForeignKey(Company, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='شرکت')
|
|
|
|
class Meta:
|
|
verbose_name = 'قالب قرارداد'
|
|
verbose_name_plural = 'قالبهای قرارداد'
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
class ContractInstance(BaseModel):
|
|
process_instance = models.ForeignKey('processes.ProcessInstance', on_delete=models.CASCADE, related_name='contracts', verbose_name='نمونه فرآیند')
|
|
template = models.ForeignKey(ContractTemplate, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='قالب مورد استفاده')
|
|
rendered_body = models.TextField(verbose_name='متن نهایی قرارداد')
|
|
approved = models.BooleanField(default=False, verbose_name='تایید شده')
|
|
approved_at = models.DateTimeField(null=True, blank=True, verbose_name='تاریخ تایید')
|
|
created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='ایجاد کننده')
|
|
|
|
class Meta:
|
|
verbose_name = 'قرارداد'
|
|
verbose_name_plural = 'قراردادها'
|
|
ordering = ['-created']
|
|
|
|
def __str__(self):
|
|
return f"Contract for {self.process_instance}"
|
|
|