@@ -22,6 +22,36 @@ class PropertyContractLine(models.Model):
|
||||
start_time = fields.Date(string="生效日期")
|
||||
end_date = fields.Date(string="失效日期")
|
||||
|
||||
@api.onchange('start_time', 'end_date', 'yuthon_property_id', 'lease_contract_id')
|
||||
def _onchange_contract_dates(self):
|
||||
# 1. 若未关联物业,直接返回
|
||||
if not self.yuthon_property_id:
|
||||
return
|
||||
all_contract_lines = self.env['property.contract.line'].search([
|
||||
('yuthon_property_id', '=', self.yuthon_property_id.id.origin)
|
||||
])
|
||||
if not all_contract_lines:
|
||||
return
|
||||
for contract_line in all_contract_lines:
|
||||
if not all([contract_line.lease_contract_id, contract_line.start_time]):
|
||||
continue
|
||||
date_domain = [('meter_date', '>=', contract_line.start_time)]
|
||||
if contract_line.end_date:
|
||||
date_domain.append(('meter_date', '<=', contract_line.end_date))
|
||||
|
||||
domain = [
|
||||
('yuthon_property_ids', 'in', [self.yuthon_property_id.id.origin]),
|
||||
*date_domain
|
||||
]
|
||||
meter_models = [self.env["meter.archives.line"], self.env["meter.water.line"]]
|
||||
for model in meter_models:
|
||||
meter_lines = model.search(domain)
|
||||
if meter_lines:
|
||||
meter_lines.write({
|
||||
'contract_id': contract_line.lease_contract_id.id,
|
||||
})
|
||||
|
||||
|
||||
class PropertyTenantLine(models.Model):
|
||||
_name = 'property.tenant.line'
|
||||
_description = '物业承租方合同明细行'
|
||||
|
||||
Reference in New Issue
Block a user