添加功能

This commit is contained in:
李鹏宇
2026-06-15 17:53:11 +08:00
parent 60badd8ff0
commit 883daa3c6b
2 changed files with 56 additions and 15 deletions
@@ -660,7 +660,7 @@ class PropertyAccountsReceivable(models.Model):
admin_id = fields.Many2one(related='contract_id.admin_id', string="片区管理员", store=True)
tenure_type = fields.Selection([('self', '自有'), ('agency', '代管')], string='权属类型', compute="compute_tenure_type", store=True)
tenure_type_label = fields.Char(string='权属类型(文本)', compute='_compute_tenure_type_label', store=True)
precinct_id = fields.Many2one(related='contract_id.precinct_id', string="所属片区", store=True)
is_refunded = fields.Boolean(string='是否已退款', compute='_compute_is_refunded', store=True)
penalty = fields.Float(string="违约金基数")
penalty_date = fields.Date(string="违约金日期")
@@ -679,6 +679,39 @@ class PropertyAccountsReceivable(models.Model):
actual_coping = fields.Float(string="实际应付", compute='_compute_actual_coping', store=True)
charging_range = fields.Text(string="收费区间")
precinct_id = fields.Many2one('yuthon.precinct.message', string="所属片区", compute='_compute_precinct_id', store=True)
@api.depends('contract_id', 'contract_id.lease_ids', 'contract_id.lease_ids.address_id',
'contract_id.lease_ids.address_id.manage_information_ids', 'due_date')
def _compute_precinct_id(self):
"""根据合同第一条物业明细的管理信息,按应收开始日期匹配对应管理明细行,取其所属片区"""
for rec in self:
rec.precinct_id = False
if not rec.contract_id or not rec.contract_id.lease_ids:
continue
address = rec.contract_id.lease_ids[0].address_id
if not address or not address.manage_information_ids:
continue
due_date = rec.due_date
if not due_date:
continue
matched = address.manage_information_ids.filtered(
lambda m: m.start_time and m.start_time <= due_date and (not m.end_date or m.end_date >= due_date)
)
if matched:
rec.precinct_id = matched[0].precinct_id
else:
past = address.manage_information_ids.filtered(lambda m: m.start_time and m.start_time <= due_date)
if past:
rec.precinct_id = past.sorted('start_time', reverse=True)[0].precinct_id
def action_precinct_id(self):
record_ids = self.env["property.accounts.receivable"].browse(
self._context.get("active_ids", self._context.get("active_id"))
)
for rec in record_ids:
rec._compute_precinct_id()
def action_fix(self):
record_ids = self.env["property.accounts.receivable"].browse(
self._context.get("active_ids", self._context.get("active_id"))
@@ -1407,6 +1440,7 @@ class PropertyRentList(models.Model):
'management_type_id': management_type.id,
})
rec.is_push = True
accounts_id._compute_precinct_id()
accounts_id._compute_lessee_id()
self.reconcile_with_bank_statements(rec)
@@ -656,19 +656,26 @@
<field name="state">code</field>
<field name="code">action = model.update_is_liquidated_damages()</field>
</record>
<record id="all_update_is_liquidated_damages" model="ir.actions.server">
<field name="name">一次性更新</field>
<field name="model_id" ref="yuthon_property.model_property_accounts_receivable"/>
<field name="binding_model_id" ref="yuthon_property.model_property_accounts_receivable"/>
<field name="state">code</field>
<field name="code">action = model.update_damages()</field>
</record>
<!-- <record id="all_update_is_liquidated_damages" model="ir.actions.server">-->
<!-- <field name="name">一次性更新</field>-->
<!-- <field name="model_id" ref="yuthon_property.model_property_accounts_receivable"/>-->
<!-- <field name="binding_model_id" ref="yuthon_property.model_property_accounts_receivable"/>-->
<!-- <field name="state">code</field>-->
<!-- <field name="code">action = model.update_damages()</field>-->
<!-- </record>-->
<record id="update_compute_lessee_id" model="ir.actions.server">
<field name="name">同步出租方和承租方</field>
<field name="model_id" ref="yuthon_property.model_property_accounts_receivable"/>
<field name="binding_model_id" ref="yuthon_property.model_property_accounts_receivable"/>
<field name="state">code</field>
<field name="code">action = model.update_compute_lessee_id()</field>
</record>
<record id="update_action_precinct_id" model="ir.actions.server">
<field name="name">同步片区管理员</field>
<field name="model_id" ref="yuthon_property.model_property_accounts_receivable"/>
<field name="binding_model_id" ref="yuthon_property.model_property_accounts_receivable"/>
<field name="state">code</field>
<field name="code">action = model.action_precinct_id()</field>
</record>
<record id="all_action_refuse_all" model="ir.actions.server">
<field name="name">批量退回</field>
@@ -677,13 +684,13 @@
<field name="state">code</field>
<field name="code">action = model.action_refuse_all()</field>
</record>
<record id="action_batch_fix_deposit" model="ir.actions.server">
<field name="name">批量修复押金旧数据</field>
<field name="model_id" ref="yuthon_property.model_property_accounts_receivable"/>
<field name="binding_model_id" ref="yuthon_property.model_property_accounts_receivable"/>
<field name="state">code</field>
<field name="code">action = model.action_batch_fix_deposit()</field>
</record>
<!-- <record id="action_batch_fix_deposit" model="ir.actions.server">-->
<!-- <field name="name">批量修复押金旧数据</field>-->
<!-- <field name="model_id" ref="yuthon_property.model_property_accounts_receivable"/>-->
<!-- <field name="binding_model_id" ref="yuthon_property.model_property_accounts_receivable"/>-->
<!-- <field name="state">code</field>-->
<!-- <field name="code">action = model.action_batch_fix_deposit()</field>-->
<!-- </record>-->
<!--对账-->
<record id="inherit_property_bank_statements_tree" model="ir.ui.view">
<field name="name">property.bank.statements.tree</field>