74 lines
2.5 KiB
Python
74 lines
2.5 KiB
Python
from django.db import models
|
|
from django.utils import timezone
|
|
from django.core.validators import MinValueValidator, MaxValueValidator
|
|
|
|
|
|
class Betriebskosten(models.Model):
|
|
KOSTENTYP_CHOICES = [
|
|
('sach', 'Sachkostöen'),
|
|
('ln2', 'LN2'),
|
|
('helium', 'Helium'),
|
|
('inv', 'Inventar'),
|
|
]
|
|
|
|
buchungsdatum = models.DateField('Buchungsdatum')
|
|
rechnungsnummer = models.CharField('Rechnungsnummer', max_length=50)
|
|
kostentyp = models.CharField('Kostentyp', max_length=10, choices=KOSTENTYP_CHOICES)
|
|
gas_volume = models.DecimalField('Gasvolumen (Liter)', max_digits=10, decimal_places=2, null=True, blank=True)
|
|
betrag = models.DecimalField('Betrag (€)', max_digits=10, decimal_places=2)
|
|
beschreibung = models.TextField('Beschreibung', blank=True)
|
|
|
|
@property
|
|
def price_per_liter(self):
|
|
if self.kostentyp == 'helium' and self.gas_volume:
|
|
return self.betrag / self.gas_volume
|
|
return None
|
|
|
|
def __str__(self):
|
|
return f"{self.buchungsdatum} - {self.get_kostentyp_display()} - {self.betrag}€" # Fixed the missing quote
|
|
|
|
class Client(models.Model):
|
|
name = models.CharField(max_length=100)
|
|
address = models.TextField()
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
class ExcelEntry(models.Model):
|
|
client = models.ForeignKey(Client, on_delete=models.CASCADE)
|
|
date = models.DateField(default=timezone.now)
|
|
pressure = models.DecimalField(
|
|
max_digits=10,
|
|
decimal_places=2,
|
|
validators=[MinValueValidator(0)],
|
|
default=0.00
|
|
)
|
|
purity = models.DecimalField(
|
|
max_digits=5,
|
|
decimal_places=2,
|
|
validators=[MinValueValidator(0), MaxValueValidator(100)],
|
|
default=0.00
|
|
)
|
|
notes = models.TextField(blank=True, null=True)
|
|
date_joined = models.DateField(auto_now_add=True)
|
|
|
|
def __str__(self):
|
|
return f"{self.client.name} - {self.date}"
|
|
|
|
class SecondTableEntry(models.Model):
|
|
client = models.ForeignKey(Client, on_delete=models.CASCADE)
|
|
date = models.DateField(default=timezone.now) # Added default value
|
|
is_warm = models.BooleanField(default=False)
|
|
lhe_delivery = models.CharField(max_length=100, blank=True, null=True)
|
|
lhe_output = models.DecimalField(
|
|
max_digits=10,
|
|
decimal_places=2,
|
|
validators=[MinValueValidator(0)],
|
|
blank=True,
|
|
null=True
|
|
)
|
|
notes = models.TextField(blank=True, null=True)
|
|
date_joined = models.DateField(auto_now_add=True)
|
|
|
|
def __str__(self):
|
|
return f"{self.client.name} - {self.date}" |