我正在尝试使用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