Расчеты начальных сальдо Джанго - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь создать простое приложение для инвентаризации, используя Django.Мой проект остановился, когда я не смог найти решение для расчета начального и конечного баланса на лету / динамически.Я пытался целыми днями исследовать Интернет, но пока не достиг прогресса.Если кто-то может помочь, я буду признателен.

Все, что мне нужно, это запрос для динамического расчета начального и конечного сальдо.

Мои модели:

class Item(models.Model):
    name = models.CharField(max_length=30)
    buying_price = models.PositiveIntegerField()
    selling_price = models.PositiveIntegerField()
    quantity = models.PositiveIntegerField()

    def __str__(self):
        return self.name    

class SalesSheet(models.Model):
    txn_date = models.DateField()
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    purchases = models.PositiveIntegerField()
    sales = models.PositiveIntegerField()

Что я хочу послепроводка покупок и продаж является выводом, подобным этому

id  date        item  opening  purchases sales closing
 1  1-1-19      abc   10       20        5     25
 2  2-12-19     def   25       20        10    35
 3  3-1-19      abc   25       10        25    10
 4  4-1-19      def   35       10        30    15
 5  7-1-19      abc   10       0         0     10
 6  9-1-19      def   15       0         5     10

и т. д. .....

Я использую item.quantity для хранения начального запаса только в первый раз.

Примите во внимание, что будут различные элементы, а также записи с датой назад.

помогите мне, ребята.

Я попытался добавить эти функции в свои модели и использовать их для отображения открытия (открытие_баланс) и закрытие (закрытие_баланс) сальдо.Но проблема в том, что цикл не работает.

Идея заключалась в том, что если цикл работал, то начальный запас будет обновляться новым заключительным запасом при каждом запуске цикла.

class SalesSheet(models.Model):
    txn_date = models.DateField()
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    purchases = models.PositiveIntegerField()
    sales = models.PositiveIntegerField()

    def opening_balance(self):
        quantity = self.item.quantity
        items = SalesSheet.objects.all()
        for item in items:
            opening = quantity
            closing = opening + self.purchases - self.sales 
            quantity = closing
            return opening

    def closing_balance(self):
        quantity = self.item.quantity
        items = SalesSheet.objects.all()
        for item in items:
            opening = quantity
            closing = opening + self.purchases - self.sales 
            quantity = closing
            return closing
...