Files
gzth/yuthon_property/wizard/task_push_wizard.py
T
2025-10-20 14:35:29 +08:00

46 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
from odoo import models, fields, api, _, SUPERUSER_ID
from odoo.exceptions import ValidationError, UserError
from pypinyin import pinyin, Style
import xlrd
import base64
import datetime
from datetime import datetime
class TaskPushWizard(models.TransientModel):
_name = 'task.push.wizard'
_description = '电水表任务推送弹窗'
push_date = fields.Date(string='日期', default=fields.date.today())
meter_ids = fields.Many2many('meter.archives.line', string='电表任务')
water_ids = fields.Many2many('meter.water.line', string='水表任务')
def confirm(self):
if self.meter_ids:
management_type_id = self.env['yuthon.management.type'].search([('name', '=', '电费')], limit=1)
for meter in self.meter_ids:
if meter.unit and meter.contract_id:
self.env['property.accounts.receivable'].create({
'contract_id': meter.contract_id.id,
'lessee_id': meter.lessee_id.id if meter.lessee_id else None,
'original_amount': meter.archives_id.fixed_receivables if meter.archives_id.fixed_receivables else meter.receivables,
'due_date': self.push_date,
'create_time': datetime.now(),
'management_type_id': management_type_id.id,
})
meter.is_push = True
if self.water_ids:
management_type_id = self.env['yuthon.management.type'].search([('name', '=', '水费')], limit=1)
for water in self.water_ids:
if water.unit and water.contract_id:
self.env['property.accounts.receivable'].create({
'contract_id': water.contract_id.id,
'lessee_id': water.lessee_id.id if water.lessee_id else None,
'original_amount': water.water_id.fixed_receivables if water.water_id.fixed_receivables else water.receivables,
'due_date': self.push_date,
'create_time': datetime.now(),
'management_type_id': management_type_id.id,
})
water.is_push = True