!6815 添加功能

Merge pull request !6815 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-12-03 08:46:12 +00:00
committed by Gitee
3 changed files with 42 additions and 3 deletions
@@ -279,7 +279,8 @@ class SoongWorkflowMixin(models.AbstractModel):
self.env['trans.link'].search([]).unlink()
# 退回节点根据日志进行判断
if btn_rec.name == '退回':
for ret in self.log_ids.search([('approval_state', '=', '2'), ('res_id', '=', self.id), ('node_btn_name', '=', '0')]):
approved_logs = self.log_ids.filtered(lambda log: log.approval_state == '2')
for ret in approved_logs:
if not self.env['trans.link'].search([('name', '=', ret.name)]):
self.env['trans.link'].create({
'node_button_id': btn_rec.id,
@@ -422,8 +423,7 @@ class SoongWorkflowMixin(models.AbstractModel):
"default_trans_link_id": self.env['trans.link'].search(trans_domain, limit=1).id if btn_rec.name == '转交' else False,
"all_workflow_links": trans_link_ids,
"default_return_link_id": self.env['trans.link'].search(
[('record_id', '=', self.id)],
limit=1).id if btn_rec.name == '退回' else False,
[('link_type', '=', 'return'), ('record_id', '=', self.id)], limit=1).id if btn_rec.name == '退回' else False,
},
}
@@ -43,6 +43,7 @@
<field name="exam_leave" options='{ "fg_color": "white: exam_leave == False"}'/>
<button name="log" type="object" string="详情" class="oe_highlight"/>
<button name="button_put" string="发送" type="object" class="oe_highlight"/>
</tree>
</field>
</record>
@@ -47,6 +47,44 @@ class PropertyBankStatements(models.Model):
change_amount = fields.Float(string='修改金额')
receivable_modify_ids = fields.One2many('receivable.modify.line', 'bank_id', string='修改应收单')
def update_record(self):
selected_records = self.env["property.bank.statements"].browse(
self._context.get('active_ids', self._context.get('active_id'))
)
duplicate_groups = {}
for record in selected_records:
time_key = record.start_time.strftime('%Y-%m-%d %H:%M:%S') if record.start_time else 'no_time'
amount_key = round(record.original_amount, 2)
group_key = (time_key, amount_key)
if group_key not in duplicate_groups:
duplicate_groups[group_key] = self.env["property.bank.statements"]
duplicate_groups[group_key] |= record
deleted_count = 0
kept_records = self.env["property.bank.statements"]
for group_key, group_records in duplicate_groups.items():
if len(group_records) == 1:
kept_records |= group_records
continue
reconciled_records = group_records.filtered(lambda r: r.bank_state == 'reconciled')
if reconciled_records:
keep_record = reconciled_records[0]
kept_records |= keep_record
delete_records = group_records - keep_record
else:
keep_record = group_records[0]
kept_records |= keep_record
delete_records = group_records
if delete_records:
delete_records.unlink()
deleted_count += len(delete_records)
@api.onchange('extract')
def _onchange_extract_set_bank_state(self):
for rec in self: