Commit dd28d5f9 by 夏超

[fix] 收入支出修改

parent cc119079
...@@ -27,36 +27,31 @@ class ProductIncomeExpenseIframe(http.Controller): ...@@ -27,36 +27,31 @@ class ProductIncomeExpenseIframe(http.Controller):
def product_income_expense_create(self): def product_income_expense_create(self):
_self = http.request _self = http.request
data_list = _self.jsonrequest.get("data_list", []) data_list = _self.jsonrequest.get("data_list", [])
return_data = []
for v in data_list: for v in data_list:
data = { data = {
"business_date": v.get("business_date", False), "business_date": v.get("business_date", False),
"abstract": v.get("abstract", False), "abstract": v.get("abstract", False),
"income": v.get("income", False), "income": v.get("income", False),
"expenditure": v.get("expenditure", False), "expenditure": v.get("expenditure", False)
"balance": v.get("balance", False)
} }
result = _self.env(user=v.get("user_id"))["roke.product.income.expense"].create(data) _self.env(user=v.get("user_id"))["roke.product.income.expense"].create(data)
return_data.append({ return {"code": 0, "message": "创建成功!"}
"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}
@http.route("/roke/product/product_income_expense/get", type="json", auth='none', cors='*', csrf=False) @http.route("/roke/product/product_income_expense/get", type="json", auth='none', cors='*', csrf=False)
def product_income_expense_get_list(self): def product_income_expense_get_list(self):
_self = http.request _self = http.request
limit = _self.jsonrequest.get("limit", 20) limit = _self.jsonrequest.get("limit", 20)
page = _self.jsonrequest.get("page", 1) page = _self.jsonrequest.get("page", 1)
data_list = _self.env["roke.product.income.expense"].sudo().search([], limit=limit, offset=(page - 1) * limit, 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") order="create_date desc")
count = _self.env["roke.product.income.expense"].sudo().search_count([]) count = _self.env["roke.product.income.expense"].sudo().search_count(domain)
data = [] data = []
for v in data_list: for v in data_list:
data.append({ data.append({
......
...@@ -13,4 +13,17 @@ class ProductIncomeExpense(models.Model): ...@@ -13,4 +13,17 @@ class ProductIncomeExpense(models.Model):
abstract = fields.Text(string="摘要") abstract = fields.Text(string="摘要")
income = fields.Float(string="收入") income = fields.Float(string="收入")
expenditure = 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