Files
CenterPes/Base/models.py
2025-11-01 18:10:39 -03:00

84 lines
2.7 KiB
Python

from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
#Base de varias tabelas
class Base(models.Model):
active = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
created_by = models.ForeignKey(User, related_name='%(class)s_created', on_delete=models.SET_NULL, null=True)
updated_by = models.ForeignKey(User, related_name='%(class)s_updated', on_delete=models.SET_NULL, null=True)
class Meta:
abstract = True
# Lista de Profissinal
class Professional(models.Model):
name = models.CharField(max_length=100, unique=True )
percentage = models.DecimalField(max_digits=3, decimal_places=0)
symbol = models.CharField(max_length=2, unique=True)
user= models.ForeignKey(
User,
related_name='ProfessionalUser',
on_delete=models.SET_NULL,
null=True, blank=True
)
class Meta:
ordering = ['name']
def __str__(self):
return f'{ self.name } { self.symbol }'
# Lista de Bancos
class BankAccount(models.Model):
name = models.CharField(max_length=50)
description = models.TextField(null=True, blank=True)
class Meta:
ordering = ['name']
def __str__(self):
return self.name
# Lista de serviços
class ServiceList(models.Model):
name = models.CharField(max_length=50)
value = models.DecimalField(max_digits=6, decimal_places=2)
description = models.TextField(null=True, blank=True)
class Meta:
ordering = ['name']
def __str__(self):
return self.name
# Lista de Produtos
class ProductList(models.Model):
name = models.CharField(max_length=50)
value = models.DecimalField(max_digits=6, decimal_places=2)
description = models.TextField(null=True, blank=True)
class Meta:
ordering = ['name']
def __str__(self):
return f'{ self.name } - { self.value }'
# Lista de Contas
class ChartOfAccount(models.Model):
name = models.CharField(max_length=100)
debit = models.BooleanField(default=True)
firm = models.BooleanField(default=True)
notes = models.TextField(null=True, blank=True)
class Meta:
ordering = ['name']
def __str__(self):
return self.name
# metodos de pagamentos
class PayMethod(models.Model):
name = models.CharField(max_length=100)
bank = models.ForeignKey(
BankAccount,
on_delete=models.PROTECT,
related_name='PaymentMethodBank',
)
percentage = models.DecimalField(max_digits=3, decimal_places=0)
description = models.TextField(null=True, blank=True)
class Meta:
ordering = ['bank','name',]
def __str__(self):
return f'{ self.bank } - { self.name }'