@@ -54,6 +54,19 @@ class PropertyAccountsReceivable(models.Model):
|
||||
bank_id = fields.Many2one('property.bank.statements', string='流水记录')
|
||||
receivable_log = fields.Text(string='应收日志')
|
||||
|
||||
@api.onchange('contract_id')
|
||||
def _onchange_contract_id(self):
|
||||
"""选择合同时自动填充税率"""
|
||||
if self.contract_id and self.contract_id.tax_rate:
|
||||
self.tax = float(self.contract_id.tax_rate.name)
|
||||
|
||||
def action_update_tax_from_contract(self):
|
||||
"""批量更新税率:从合同获取正确税率"""
|
||||
for rec in self:
|
||||
if rec.contract_id and rec.contract_id.tax_rate:
|
||||
rec.tax = float(rec.contract_id.tax_rate.name)
|
||||
return True
|
||||
|
||||
def update_is_invalid(self):
|
||||
record_ids = self.env["property.accounts.receivable"].browse(
|
||||
self._context.get("active_ids", self._context.get("active_id"))
|
||||
|
||||
@@ -78,7 +78,8 @@ class CurrentReceivablePropertyFeeReport(models.Model):
|
||||
|
||||
for idx, rec in enumerate(receivables, start=1):
|
||||
amt = rec.original_amount or 0.0
|
||||
tax_rate = rec.tax or 0.0
|
||||
# 从合同获取税率
|
||||
tax_rate = float(rec.contract_id.tax_rate.name) * 100 if rec.contract_id and rec.contract_id.tax_rate else 0.0
|
||||
amt_nt = amt / (1 + tax_rate / 100) if tax_rate else amt
|
||||
total_amount += amt
|
||||
total_amount_nt += amt_nt
|
||||
@@ -99,7 +100,7 @@ class CurrentReceivablePropertyFeeReport(models.Model):
|
||||
'display_name': rec.lessee_id.name,
|
||||
} if rec.lessee_id else "",
|
||||
"金额(含税)": round(amt, 2),
|
||||
"税率": tax_rate,
|
||||
"税率": f"{tax_rate:.1f}%" if tax_rate else "0.0%",
|
||||
"金额(不含税)": round(amt_nt, 2),
|
||||
"物业名称": rec.property_name or "",
|
||||
"产权证": rec.title_deed or "",
|
||||
|
||||
@@ -63,7 +63,8 @@ class CurrentReceivableRentReport(models.Model):
|
||||
discount = rec.discount_amount or 0.0
|
||||
# 实际应收 = 原始金额 - 减免金额
|
||||
actual_amt = amt - discount
|
||||
tax_rate = rec.tax or 0.0
|
||||
# 从合同获取税率
|
||||
tax_rate = float(rec.contract_id.tax_rate.name) * 100 if rec.contract_id and rec.contract_id.tax_rate else 0.0
|
||||
actual_amt_nt = actual_amt / (1 + tax_rate / 100) if tax_rate else actual_amt
|
||||
|
||||
# 统计每个管理类型的合计
|
||||
@@ -85,7 +86,7 @@ class CurrentReceivableRentReport(models.Model):
|
||||
"原始金额": round(amt, 2),
|
||||
"减免金额": round(discount, 2) if discount else "",
|
||||
"实际金额(含税)": round(actual_amt, 2),
|
||||
"税率": tax_rate,
|
||||
"税率": f"{tax_rate:.1f}%" if tax_rate else "0.0%",
|
||||
"实际金额(不含税)": round(actual_amt_nt, 2),
|
||||
"物业名称": rec.property_name or "",
|
||||
"产权证": rec.title_deed or "",
|
||||
|
||||
@@ -78,7 +78,7 @@ class YuthonProperty(models.Model):
|
||||
'display_name': rec.contract_id.contract_code,
|
||||
} if rec.contract_id else "",
|
||||
"发票类型": invoice_type_map.get(rec.invoice_type, ""),
|
||||
"税率": f"{rec.tax}%" if rec.tax else "0%"
|
||||
"税率": f"{float(rec.contract_id.tax_rate.name) * 100:.1f}%" if rec.contract_id and rec.contract_id.tax_rate else "0.0%"
|
||||
})
|
||||
|
||||
summary_stats = []
|
||||
|
||||
Reference in New Issue
Block a user