Commit dd28d5f9 by 夏超

[fix] 收入支出修改

parent cc119079
......@@ -27,36 +27,31 @@ class ProductIncomeExpenseIframe(http.Controller):
def product_income_expense_create(self):
_self = http.request
data_list = _self.jsonrequest.get("data_list", [])
return_data = []
for v in data_list:
data = {
"business_date": v.get("business_date", False),
"abstract": v.get("abstract", False),
"income": v.get("income", False),
"expenditure": v.get("expenditure", False),
"balance": v.get("balance", False)
"expenditure": v.get("expenditure", False)
}
result = _self.env(user=v.get("user_id"))["roke.product.income.expense"].create(data)
return_data.append({
"id": result.id,
"business_date": result.business_date and result.business_date.strftime('%Y-%m-%d'),
"abstract": result.abstract or "",
"income": result.income or 0,
"expenditure": result.expenditure or 0,
"balance": result.balance or 0,
"user_name": result.create_uid.name or "",
"create_date": (result.create_date + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M'),
})
return {"code": 0, "message": "创建成功!", "data": return_data}
_self.env(user=v.get("user_id"))["roke.product.income.expense"].create(data)
return {"code": 0, "message": "创建成功!"}
@http.route("/roke/product/product_income_expense/get", type="json", auth='none', cors='*', csrf=False)
def product_income_expense_get_list(self):
_self = http.request
limit = _self.jsonrequest.get("limit", 20)
page = _self.jsonrequest.get("page", 1)
data_list = _self.env["roke.product.income.expense"].sudo().search([], limit=limit, offset=(page - 1) * limit,
order="create_date desc")
count = _self.env["roke.product.income.expense"].sudo().search_count([])
start_date = _self.jsonrequest.get("start_date", "")
end_date = _self.jsonrequest.get("end_date", "")
domain = []
if start_date and end_date:
domain.append(("business_date", ">=", start_date))
domain.append(("business_date", "<=", end_date))
data_list = _self.env["roke.product.income.expense"].sudo().search(domain, limit=limit,
offset=(page - 1) * limit,
order="create_date desc")
count = _self.env["roke.product.income.expense"].sudo().search_count(domain)
data = []
for v in data_list:
data.append({
......
......@@ -13,4 +13,17 @@ class ProductIncomeExpense(models.Model):
abstract = fields.Text(string="摘要")
income = fields.Float(string="收入")
expenditure = fields.Float(string="支出")
balance = fields.Float(string="结余")
balance = fields.Float(string="结余", compute="_compute_balance")
@api.depends("income", "expenditure")
def _compute_balance(self):
data = self.search([("id", "in", self.ids)], order="create_date asc")
for v in data:
last_data = self.search([
("create_date", "<", v.create_date),
("id", "!=", v.id)
], limit=1, order="create_date desc")
if not last_data:
v.balance = 0 + v.income - v.expenditure
else:
v.balance = last_data.balance + v.income - v.expenditure
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment