from django.db import models from django.db.models.deletion import CASCADE, PROTECT from simple_history.models import HistoricalRecords from sap.models import * from datetime import date class Branch(models.Model): name = models.CharField(max_length=12) description = models.CharField(max_length=30) history = HistoricalRecords() class Meta: ordering = ["-id"] def __str__(self): return f"{self.name}:{self.description}" class InventoryTaking(models.Model): name = models.CharField(max_length=12) description = models.CharField(max_length=30) begin = models.DateField() end = models.DateField() history = HistoricalRecords() class Meta: ordering = ["-id"] def __str__(self): return f"{self.name} Begin:{self.begin} End:{self.end}" class Area(models.Model): branch = models.ForeignKey(Branch, on_delete=models.CASCADE) name = models.CharField(max_length=30) description = models.CharField(max_length=40) floor = models.PositiveSmallIntegerField(default=1) history = HistoricalRecords() class Meta: ordering = ["-id"] def __str__(self): return ( str(self.branch) + " Floor:" + str(self.floor) + "Description:" + str(self.name) ) class Item(models.Model): inventory_id = models.IntegerField(blank=True, null=True) inventory_taking = models.ForeignKey( InventoryTaking, on_delete=PROTECT, default=None, blank=True, null=True, ) serial_nbr = models.CharField(max_length=30, blank=True, null=True) description = models.CharField(max_length=60, blank=True, null=True) name = models.CharField(max_length=60) sap_id = models.ForeignKey( SapItem, on_delete=PROTECT, default=None, blank=True, null=True ) area = models.ForeignKey( Area, on_delete=PROTECT, default=None, blank=True, null=True ) label_id = models.IntegerField(blank=True, null=True) history = HistoricalRecords() class Meta: verbose_name_plural = "Items" def __str__(self): return self.name