Commit 445041dc by 夏超

[fix] 玖姿收入支出添加类型字段

parent 0ad17b7f
...@@ -35,6 +35,7 @@ class ProductIncomeExpenseIframe(http.Controller): ...@@ -35,6 +35,7 @@ class ProductIncomeExpenseIframe(http.Controller):
"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),
"machinery_type": v.get("machinery_type", "其他"),
"expenditure": v.get("expenditure", False) "expenditure": v.get("expenditure", False)
} }
_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)
...@@ -48,12 +49,15 @@ class ProductIncomeExpenseIframe(http.Controller): ...@@ -48,12 +49,15 @@ class ProductIncomeExpenseIframe(http.Controller):
start_date = _self.jsonrequest.get("start_date", "") start_date = _self.jsonrequest.get("start_date", "")
end_date = _self.jsonrequest.get("end_date", "") end_date = _self.jsonrequest.get("end_date", "")
type_str = _self.jsonrequest.get("type_str", False) # income收入/expenditure支出 type_str = _self.jsonrequest.get("type_str", False) # income收入/expenditure支出
machinery_type = _self.jsonrequest.get("machinery_type", False) # income收入/expenditure支出
domain = [] domain = []
if start_date and end_date: if start_date and end_date:
domain.append(("business_date", ">=", start_date)) domain.append(("business_date", ">=", start_date))
domain.append(("business_date", "<=", end_date)) domain.append(("business_date", "<=", end_date))
if type_str: if type_str:
domain.append((type_str, ">", 0)) domain.append((type_str, ">", 0))
if machinery_type:
domain.append(("machinery_type", "=", machinery_type))
data_list = _self.env["roke.product.income.expense"].sudo().search(domain, limit=limit, data_list = _self.env["roke.product.income.expense"].sudo().search(domain, limit=limit,
offset=(page - 1) * limit, offset=(page - 1) * limit,
order="business_date desc, create_date desc") order="business_date desc, create_date desc")
...@@ -65,6 +69,7 @@ class ProductIncomeExpenseIframe(http.Controller): ...@@ -65,6 +69,7 @@ class ProductIncomeExpenseIframe(http.Controller):
"business_date": v.business_date and v.business_date.strftime('%Y-%m-%d'), "business_date": v.business_date and v.business_date.strftime('%Y-%m-%d'),
"abstract": v.abstract or "", "abstract": v.abstract or "",
"income": v.income or 0, "income": v.income or 0,
"machinery_type": v.machinery_type or "其他",
"expenditure": v.expenditure or 0, "expenditure": v.expenditure or 0,
"balance": v.balance or 0, "balance": v.balance or 0,
"user_name": v.create_uid.name or "", "user_name": v.create_uid.name or "",
...@@ -105,6 +110,7 @@ class ProductIncomeExpenseIframe(http.Controller): ...@@ -105,6 +110,7 @@ class ProductIncomeExpenseIframe(http.Controller):
"income": v.income or 0, "income": v.income or 0,
"expenditure": v.expenditure or 0, "expenditure": v.expenditure or 0,
"balance": v.balance or 0, "balance": v.balance or 0,
"machinery_type": v.machinery_type or '其他',
"user_name": v.create_uid.name or "", "user_name": v.create_uid.name or "",
"create_date": v.create_date + datetime.timedelta(hours=8), "create_date": v.create_date + datetime.timedelta(hours=8),
}) })
...@@ -127,8 +133,9 @@ class ProductIncomeExpenseIframe(http.Controller): ...@@ -127,8 +133,9 @@ class ProductIncomeExpenseIframe(http.Controller):
worksheet.write(0, 2, "收入", header_format) worksheet.write(0, 2, "收入", header_format)
worksheet.write(0, 3, "支出", header_format) worksheet.write(0, 3, "支出", header_format)
worksheet.write(0, 4, "结余", header_format) worksheet.write(0, 4, "结余", header_format)
worksheet.write(0, 5, "创建人", header_format) worksheet.write(0, 5, "类型", header_format)
worksheet.write(0, 6, "创建时间", header_format) worksheet.write(0, 6, "创建人", header_format)
worksheet.write(0, 7, "创建时间", header_format)
for row_num, row_data in enumerate(data): for row_num, row_data in enumerate(data):
worksheet.write_datetime(row_num + 1, 0, row_data.get("business_date"), date_format) worksheet.write_datetime(row_num + 1, 0, row_data.get("business_date"), date_format)
...@@ -136,8 +143,9 @@ class ProductIncomeExpenseIframe(http.Controller): ...@@ -136,8 +143,9 @@ class ProductIncomeExpenseIframe(http.Controller):
worksheet.write_number(row_num + 1, 2, row_data.get("income"), currency_format) worksheet.write_number(row_num + 1, 2, row_data.get("income"), currency_format)
worksheet.write_number(row_num + 1, 3, row_data.get("expenditure"), currency_format) worksheet.write_number(row_num + 1, 3, row_data.get("expenditure"), currency_format)
worksheet.write_number(row_num + 1, 4, row_data.get("balance"), currency_format) worksheet.write_number(row_num + 1, 4, row_data.get("balance"), currency_format)
worksheet.write(row_num + 1, 5, row_data.get("user_name")) worksheet.write(row_num + 1, 5, row_data.get("machinery_type"))
worksheet.write_datetime(row_num + 1, 6, row_data.get("create_date"), datetime_format) worksheet.write(row_num + 1, 6, row_data.get("user_name"))
worksheet.write_datetime(row_num + 1, 7, row_data.get("create_date"), datetime_format)
workbook.close() workbook.close()
output.seek(0) output.seek(0)
......
...@@ -14,6 +14,8 @@ class ProductIncomeExpense(models.Model): ...@@ -14,6 +14,8 @@ class ProductIncomeExpense(models.Model):
income = fields.Float(string="收入") income = fields.Float(string="收入")
expenditure = fields.Float(string="支出") expenditure = fields.Float(string="支出")
balance = fields.Float(string="结余", compute="_compute_balance") balance = fields.Float(string="结余", compute="_compute_balance")
machinery_type = fields.Selection([("烘干桶", "烘干桶"), ("钣金", "钣金"), ("颗粒机", "颗粒机"), ("其他", "其他")],
default="其他", string="类型")
@api.depends("income", "expenditure") @api.depends("income", "expenditure")
def _compute_balance(self): def _compute_balance(self):
......
...@@ -44,6 +44,17 @@ ...@@ -44,6 +44,17 @@
<el-input v-model="scope.row.expenditure" type="number" placeholder="请输入"></el-input> <el-input v-model="scope.row.expenditure" type="number" placeholder="请输入"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="类型" align="center" width="180">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.machinery_type" type="number" placeholder="请输入"></el-input> -->
<el-select v-model="scope.row.machinery_type" clearable placeholder="请选择类型">
<el-option v-for="item in machinery_type_options" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</template>
</el-table-column>
<!-- <el-table-column label="创建人" align="center" width="110"> <!-- <el-table-column label="创建人" align="center" width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
...@@ -57,16 +68,22 @@ ...@@ -57,16 +68,22 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<div style="text-align: right; margin-bottom: 5px;"> <div style="text-align: right; margin-bottom: 5px;">
<el-select v-model="select_value" clearable placeholder="请选择类型" @change="select_change"> <el-select v-model="select_value" clearable placeholder="请选择收支类型" @change="select_change">
<el-option v-for="item in select_options" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in select_options" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="machinery_type_value" clearable placeholder="请选择类型" @change="machinery_type_change">
<el-option v-for="item in machinery_type_options" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-date-picker v-model="datePickerValue" type="daterange" range-separator="至" start-placeholder="开始日期" <el-date-picker v-model="datePickerValue" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="datePickerChange"> end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="datePickerChange">
</el-date-picker> </el-date-picker>
...@@ -111,6 +128,13 @@ ...@@ -111,6 +128,13 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="类型" align="center" width="120">
<template slot-scope="scope">
<div>
[[ scope.row.machinery_type ]]
</div>
</template>
</el-table-column>
<el-table-column label="创建人" align="center" width="110"> <el-table-column label="创建人" align="center" width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
...@@ -160,6 +184,7 @@ ...@@ -160,6 +184,7 @@
expenditure: '', expenditure: '',
user_name: '', user_name: '',
user_id: null, user_id: null,
machinery_type:''
} }
], ],
datePickerValue: ['', ''], datePickerValue: ['', ''],
...@@ -170,7 +195,21 @@ ...@@ -170,7 +195,21 @@
value: 'expenditure', value: 'expenditure',
label: '支出' label: '支出'
}], }],
select_value: '' machinery_type_options: [{
value: '烘干桶',
label: '烘干桶'
}, {
value: '钣金',
label: '钣金'
}, {
value: '颗粒机',
label: '颗粒机'
}, {
value: '其他',
label: '其他'
}],
select_value: '',
machinery_type_value: ''
}; };
}, },
...@@ -184,6 +223,9 @@ ...@@ -184,6 +223,9 @@
this.getDataList() this.getDataList()
}, },
methods: { methods: {
machinery_type_change(e) {
this.getDataList()
},
select_change(e) { select_change(e) {
console.log(e); console.log(e);
console.log(this.select_value); console.log(this.select_value);
...@@ -209,7 +251,8 @@ ...@@ -209,7 +251,8 @@
page: this.currentPageNo, //当前页码 page: this.currentPageNo, //当前页码
start_date: this.datePickerValue[0], start_date: this.datePickerValue[0],
end_date: this.datePickerValue[1], end_date: this.datePickerValue[1],
type_str: this.select_value type_str: this.select_value,
machinery_type: this.machinery_type_value
} }
axios.request({ axios.request({
url: "/roke/product/product_income_expense/get", url: "/roke/product/product_income_expense/get",
...@@ -306,49 +349,57 @@ ...@@ -306,49 +349,57 @@
}, },
// 保存 // 保存
saveListData() { saveListData() {
if (this.createList[0].income != '' || this.createList[0].expenditure != '') { if (this.createList[0].machinery_type == '') {
this.loading = true;
axios.request({
url: "/roke/product/product_income_expense/create",
method: "post",
headers: {
"Content-Type": "application/json",
},
data: {
data_list: this.createList
}
}).then((res) => {
if (res.data.result.code === 0) {
this.$message({
type: "success",
message: res.data.result.message || "创建成功",
});
this.currentPageNo = 1
this.createList = [
{
business_date: moment().format("YYYY-MM-DD"),
abstract: '',
income: '',
expenditure: '',
user_name: this.user_name,
user_id: this.user_id
}
]
this.getDataList()
} else {
this.$message({
type: "error",
message: res.data.result.message || "创建失败",
});
}
this.loading = false;
});
} else {
this.$message({ this.$message({
type: "warning", type: "warning",
message: "请填写收入或支出后保存", message: "请选择类型",
}); });
} else {
if (this.createList[0].income != '' || this.createList[0].expenditure != '') {
this.loading = true;
axios.request({
url: "/roke/product/product_income_expense/create",
method: "post",
headers: {
"Content-Type": "application/json",
},
data: {
data_list: this.createList
}
}).then((res) => {
if (res.data.result.code === 0) {
this.$message({
type: "success",
message: res.data.result.message || "创建成功",
});
this.currentPageNo = 1
this.createList = [
{
business_date: moment().format("YYYY-MM-DD"),
abstract: '',
income: '',
expenditure: '',
user_name: this.user_name,
user_id: this.user_id
}
]
this.getDataList()
} else {
this.$message({
type: "error",
message: res.data.result.message || "创建失败",
});
}
this.loading = false;
});
} else {
this.$message({
type: "warning",
message: "请填写收入或支出后保存",
});
}
} }
}, },
// table样式 // table样式
tableCellStyle() { tableCellStyle() {
......
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