Django期初余额计算

时间:2019-02-05 07:38:00

标签: python django django-models

我正在尝试使用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来存储期初库存。

要考虑到会有不同的项目,也有回溯日期的条目。

帮帮我。

我尝试将这些函数添加到模型中,并使用它们来显示期初(opening_balance)和期末(closing_balance)余额。但是问题是循环无法正常工作。

想法是,如果循环起作用,则每次循环运行时,期初库存将由新的期末库存更新。

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

0 个答案:

没有答案