This commit is contained in:
李鹏宇
2026-03-24 18:12:02 +08:00
3 changed files with 48 additions and 40 deletions
+13 -14
View File
@@ -512,13 +512,16 @@ class SoongWorkflowRecord(models.Model):
)
current_datetime = fields.Datetime.now()
for workflow in workflow_ids:
record_id = self.env[workflow.res_model].search([('id', '=', workflow.res_id)])
record_id = self.env[workflow.res_model].browse(workflow.res_id)
user_id = False
if hasattr(record_id, 'user_id') and record_id.user_id:
user_id = record_id.user_id
elif hasattr(record_id, 'users_id') and record_id.users_id:
user_id = record_id.users_id
if not record_id:
continue
# 触发模型对应的结束方法
record_id.work_end = True
end_node = self.env["soong.workflow.node"].search(
@@ -526,8 +529,7 @@ class SoongWorkflowRecord(models.Model):
limit=1
)
end_btn = self.env["soong.workflow.node.button"].search(
[('node_id', '=', end_node.id),
('name', '=', '结束')],
[('node_id', '=', end_node.id), ('name', '=', '结束')],
limit=1
)
if end_btn:
@@ -536,21 +538,17 @@ class SoongWorkflowRecord(models.Model):
[('workflow_id', '=', workflow.workflow_id.id),
('name', '=', record_id.state)],
limit=1
)
# 修改日志
log_records = None
if record_id.log_ids:
log_records = record_id.log_ids
)
log_records = record_id.log_ids if hasattr(record_id, 'log_ids') else None
log_model = "soong.workflow.log"
if log_records:
log_records[-1].write({
'approval_state': '3',
'lase_click_date': current_datetime,
})
log_records.write({'approval_state': '3'})
if len(log_records) > 0:
last_log = log_records[-1]
last_log.write({'lase_click_date': current_datetime})
else:
self.env[log_model].create({
'done_by': user_id.id,
'done_by': user_id.id if user_id else False,
'node_id': node_id.id if node_id else False,
'workflow_id': workflow.workflow_id.id,
'model': workflow.res_model,
@@ -559,6 +557,7 @@ class SoongWorkflowRecord(models.Model):
'lase_click_date': current_datetime,
'sequence': 99,
})
workflow.approve_state = 'end'
workflow.soong_state = 'done'
workflow.employee_ids = [(6, 0, [])]
@@ -64,7 +64,7 @@ class PropertyLeaseRenewal(models.Model):
refund_remake = fields.Char(string="备注")
total_receivables = fields.Float(string="应收金额", compute="_compute_total_receivables")
total_remake = fields.Char(string="备注")
balance = fields.Float(string="余额")
balance = fields.Float(string="金额")
balance_remake = fields.Char(string="备注")
receivables_ids = fields.One2many('early.receivables.line', 'renewal_id', string='应收明细')
@@ -87,11 +87,6 @@ class PropertyLeaseRenewal(models.Model):
report = self.env.ref('yuthon_property_approval.action_property_lease_renewal_report')
return report.report_action(self)
@api.onchange('refund_amount')
def _onchange_refund_amount(self):
for rec in self:
rec.balance = rec.deposit - rec.refund_amount
def end_approval(self):
for rec in self:
if rec.renewal_type == 'extend':
@@ -181,17 +176,25 @@ class PropertyLeaseRenewal(models.Model):
rec.contract_id.write({
'actual_end_time': rec.early_quitting_date
})
if rec.balance > rec.total_receivables:
penalty_amount = rec.balance - rec.total_receivables
if rec.balance > rec.total_receivables and penalty_amount > 0:
management_type_id = self.env['yuthon.management.type'].search([
('name', '=', '违约金')
])
self.env['property.accounts.receivable'].create({
'contract_id': rec.contract_id.id,
'management_type_id': management_type_id.id,
'due_date': rec.early_quitting_date,
'original_amount': rec.balance - rec.total_receivables,
'remark': rec.total_remake,
})
], limit=1)
exist_receivable = self.env['property.accounts.receivable'].search([
('contract_id', '=', rec.contract_id.id),
('management_type_id', '=', management_type_id.id),
('due_date', '=', rec.early_quitting_date),
('original_amount', '=', penalty_amount),
], limit=1)
if not exist_receivable:
self.env['property.accounts.receivable'].create({
'contract_id': rec.contract_id.id,
'management_type_id': management_type_id.id,
'due_date': rec.early_quitting_date,
'original_amount': penalty_amount,
'remark': rec.total_remake,
})
if rec.receivables_ids:
refund_lines = rec.receivables_ids.filtered(lambda l: l.refund_amount > 0 and l.management_type_id.name != '押金')
bills_line_list = []
@@ -287,6 +290,7 @@ class PropertyLeaseRenewal(models.Model):
}])
self.receivables_ids = receivable_list
@api.onchange('contract_id', 'renewal_type')
def _onchange_name(self):
if self.contract_id and self.renewal_type:
@@ -310,8 +314,13 @@ class EarlyReceivablesLine(models.Model):
management_type_id = fields.Many2one(related='receivable_id.management_type_id', string='类型')
is_reconciliation = fields.Boolean(related='receivable_id.is_reconciliation', string='对账')
due_date = fields.Date(related='receivable_id.due_date', string='应收日期')
original_amount = fields.Float(related='receivable_id.original_amount', string='金额')
original_amount = fields.Float(string='金额', compute='_compute_original_amount')
reduction_amount = fields.Float(string='减免金额')
refund_amount = fields.Float(string='退款金额')
void = fields.Boolean(string='作废', default=False)
@api.depends('receivable_id')
def _compute_original_amount(self):
for line in self:
line.original_amount = line.receivable_id.original_amount - line.receivable_id.discount_amount
@@ -109,16 +109,6 @@
<group/>
<group/>
</group>
<group col="4">
<group>
<field name="balance" invisible="is_full_refund"/>
</group>
<group>
<field name="balance_remake" invisible="not balance"/>
</group>
<group/>
<group/>
</group>
<group col="4">
<group>
<field name="total_receivables" invisible="is_full_refund"/>
@@ -128,6 +118,16 @@
</group>
<group/>
<group/>
</group>
<group col="4">
<group>
<field name="balance" invisible="is_full_refund"/>
</group>
<group>
<field name="balance_remake" invisible="not balance"/>
</group>
<group/>
<group/>
</group>
<group>
<group>