inventory / backend / main / models.py
models.py
Raw
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