@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user