Merge pull request !1360 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-01-16 03:32:51 +00:00
committed by Gitee
15 changed files with 163 additions and 49 deletions
+28 -3
View File
@@ -286,10 +286,10 @@ class HrAttendance(models.Model):
'department': user.department_id.name, })
self.card_out_comment(user.resource_id.employee_id,user.template_id.planning_name)
# 工程部 - 白班 白值
# 工程部 - 白班
def gc_white_in_remind(self):
ba_up_users = self.env['planning.slot'].search(
[('role_id.name', '=', '工程部'), ('template_id.planning_name', 'in', ['白班', '白值'])])
[('role_id.name', '=', '工程部'), ('template_id.planning_name', '=', '白班')])
for user in ba_up_users:
if user.start_datetime.date() == fields.date.today():
self.env['card.remind.form'].create({
@@ -313,7 +313,7 @@ class HrAttendance(models.Model):
def gc_white_out_remind(self):
ba_up_users = self.env['planning.slot'].search(
[('role_id.name', '=', '工程部'), ('template_id.planning_name', 'in', ['白班', '白值'])])
[('role_id.name', '=', '工程部'), ('template_id.planning_name', '=', '白班')])
for user in ba_up_users:
if user.start_datetime.date() == fields.date.today():
self.env['card.remind.form'].create({
@@ -323,6 +323,31 @@ class HrAttendance(models.Model):
'department': user.department_id.name, })
self.card_out_comment(user.resource_id.employee_id,user.template_id.planning_name)
# 工程部 - 白值
def gc_white_remind_in(self):
ba_up_users = self.env['planning.slot'].search(
[('role_id.name', '=', '工程部'), ('template_id.planning_name', '=', '白值')])
for user in ba_up_users:
if user.start_datetime.date() == fields.date.today():
self.env['card.remind.form'].create({
'name': user.resource_id.employee_id.name,
'start_time': datetime.now(),
'shift': user.template_id.planning_name,
'department': user.department_id.name, })
self.card_in_comment(user.resource_id, user.template_id.planning_name)
def gc_white_remind_out(self):
ba_up_users = self.env['planning.slot'].search(
[('role_id.name', '=', '工程部'), ('template_id.planning_name', '=', '白值')])
for user in ba_up_users:
if user.start_datetime.date() == fields.date.today():
self.env['card.remind.form'].create({
'name': user.resource_id.employee_id.name,
'start_time': datetime.now(),
'shift': user.template_id.planning_name,
'department': user.department_id.name, })
self.card_out_comment(user.resource_id.employee_id, user.template_id.planning_name)
# 工程部-中值夜
def gc_night_remind_in(self):
ba_up_users = self.env['planning.slot'].search(
+1 -1
View File
@@ -2673,7 +2673,7 @@
<field name="res_model">issue.library</field>
<field name="view_mode">tree,form</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_form')}),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_issue.view_issue_library_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_issue.view_issue_library_form')})]"/>
</record>
<record id="all_data_update_issue_library" model="ir.actions.server">
@@ -6,4 +6,4 @@ class PropertyDepositList(models.Model):
_description = '押金列表'
property_id = fields.Many2one('yuthon.property', string='物业')
lessee_id = fields.Many2one(related='property_id.lessee_id', string='承租方')
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
@@ -11,7 +11,7 @@ class PropertyElectricReading(models.Model):
position = fields.Char(string='单元编号')
property_id = fields.Many2one('yuthon.property', string='地址')
users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
lessee_id = fields.Many2one(related='property_id.lessee_id', string="承租方")
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
state = fields.Char(string='状态')
employee_ids = fields.Many2many('hr.employee', string='抄表人')
meter_type = fields.Selection([('electric', '电表'), ('water', '水表')], string='仪表类型')
@@ -19,13 +19,14 @@ class PropertyElectricReading(models.Model):
other = fields.Char(string='其他')
billing_period = fields.Date(string='账期')
meter_date= fields.Date(string='抄表年月')
last_meter = fields.Date(string='上次')
last_dosage = fields.Float(string='上次')
last_meter = fields.Date(string='上次抄表日期')
current_meter = fields.Float(string='本次', tracking=True)
apply_standards = fields.Char(string='应用标准')
fee_id = fields.Many2one('yuthon.water.setting', string="收费标准")
price_unit = fields.Float(string='单价')
ratio = fields.Float(string='倍率')
amount_wastage = fields.Float(string='损耗量')
dosage = fields.Float(string='用量')
dosage = fields.Float(string='用量', compute='_compute_dosage')
is_push = fields.Boolean(string='已推送')
generate_charges = fields.Float(string='生成费用')
type = fields.Selection([('public', '公共'), ('fees', '收费')], string='收费类型')
@@ -61,8 +62,13 @@ class PropertyElectricReading(models.Model):
raise UserError(f"该仪表已经推送,不能重复推送")
self.env["property.tariff.list"].create({
'code': rec.name,
'property_id': rec.yuthon_property_id.id if rec.yuthon_property_id else None,
'ratio': rec.gauge_magnification,
'position': rec.unit_number,
'type': rec.type,
})
'property_id': rec.yuthon_property_id.id if rec.yuthon_property_id else None,
'ratio': rec.gauge_magnification,
'position': rec.unit_number,
'type': rec.type,
})
@api.depends('last_dosage', 'current_meter')
def _compute_dosage(self):
for record in self:
record.dosage = record.current_meter - record.last_meter
+1 -1
View File
@@ -6,7 +6,7 @@ class PropertyRentList(models.Model):
_description = '租金列表'
property_id = fields.Many2one('yuthon.property', string='物业')
lessee_id = fields.Many2one(related='property_id.lessee_id', string='承租方')
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
admin_id = fields.Many2one(related='property_id.admin_id', string="片区管理员")
company_id = fields.Many2one(related='property_id.company_id', string="所属公司")
rent_month = fields.Float(string='当月租金')
@@ -13,7 +13,7 @@ class PropertyTariffList(models.Model):
year = fields.Char(string='所属年')
month = fields.Char(string='所属月')
tariff_meter_reading = fields.Float(string='电费读数')
tariff_fee_standard = fields.Float(string='电费标准')
fee_id = fields.Many2one('yuthon.water.setting', string="收费标准")
original_amount = fields.Float(string='金额')
deduction_amount = fields.Float(string='减免金额')
remarks = fields.Text(string='备注')
@@ -13,8 +13,8 @@ class PropertyWaterList(models.Model):
year = fields.Char(string='所属年')
month = fields.Char(string='所属月')
water_meter_reading = fields.Float(string='水表读数')
water_fee_standard = fields.Float(string='水费标准')
original_amount = fields.Float(string='原金额')
fee_id = fields.Many2one('yuthon.water.setting', string="水费标准")
original_amount = fields.Float(string='金额')
deduction_amount = fields.Float(string='减免金额')
remarks = fields.Text(string='备注')
is_cancel = fields.Boolean(string='作废')
@@ -1,4 +1,5 @@
from odoo import models, fields, api
from odoo.odoo.tools.populate import compute
class PropertyWaterReading(models.Model):
@@ -11,7 +12,7 @@ class PropertyWaterReading(models.Model):
property_id = fields.Many2one('yuthon.property', string='地址')
users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
contract = fields.Char(string='合同')
lessee_id = fields.Many2one(related='property_id.lessee_id', string="承租方")
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
state = fields.Char(string='状态')
employee_ids = fields.Many2many('hr.employee', string='抄表人')
meter_type = fields.Selection([('electric', '电表'), ('water', '水表')], string='仪表类型')
@@ -19,13 +20,14 @@ class PropertyWaterReading(models.Model):
other = fields.Char(string='其他')
billing_period = fields.Date(string='账期')
meter_date= fields.Date(string='抄表年月')
last_meter = fields.Date(string='上次')
last_dosage = fields.Float(string='上次')
last_meter = fields.Date(string='上次抄表日期')
current_meter = fields.Float(string='本次', tracking=True)
apply_standards = fields.Char(string='应用标准')
fee_id = fields.Many2one('yuthon.water.setting', string="收费标准")
price_unit = fields.Float(string='单价')
ratio = fields.Float(string='倍率')
amount_wastage = fields.Float(string='损耗量')
dosage = fields.Float(string='用量')
dosage = fields.Float(string='用量', compute='_compute_dosage')
is_push = fields.Boolean(string='已推送')
generate_charges = fields.Float(string='生成费用')
type = fields.Selection([('public', '公共'), ('fees', '收费')], string='收费类型')
@@ -43,6 +45,11 @@ class PropertyWaterReading(models.Model):
description="您有抄表待处理,请及时处理",
url=str, btntxt="详细信息")
@api.depends('last_dosage', 'current_meter')
def _compute_dosage(self):
for record in self:
record.dosage = record.current_meter - record.last_meter
def button_details(self):
return {
'name': '抄表详情',
@@ -70,6 +70,7 @@ class YuthonElectricitySetting(models.Model):
_description = '电费标准配置'
name = fields.Char(string="电费标准")
amount = fields.Float(string="金额")
class YuthonWaterSetting(models.Model):
@@ -77,6 +78,7 @@ class YuthonWaterSetting(models.Model):
_description = '水费标准配置'
name = fields.Char(string="水费标准")
amount = fields.Float(string="金额")
class YuthonPropertySetting(models.Model):
@@ -9,14 +9,16 @@
<field name="position" optional="hide"/>
<field name="property_id"/>
<field name="lessee_id"/>
<field name="last_dosage" optional="hide"/>
<field name="users_id" optional="hide"/>
<field name="state" optional="hide"/>
<field name="payment_account" optional="hide"/>
<field name="billing_period" optional="hide"/>
<field name="meter_date" optional="hide"/>
<field name="last_meter"/>
<field name="last_meter" optional="hide"/>
<field name="last_dosage"/>
<field name="current_meter"/>
<field name="apply_standards" optional="hide"/>
<field name="fee_id" optional="hide"/>
<field name="price_unit" optional="hide"/>
<field name="ratio" optional="hide"/>
<field name="amount_wastage" optional="hide"/>
@@ -53,7 +55,7 @@
<field name="meter_date"/>
<field name="last_meter"/>
<field name="current_meter"/>
<field name="apply_standards"/>
<field name="fee_id"/>
<field name="price_unit"/>
<field name="ratio"/>
<field name="amount_wastage"/>
@@ -11,7 +11,7 @@
<field name="tariff_meter_number" optional="hide"/>
<field name="due_date"/>
<field name="tariff_meter_reading" optional="hide"/>
<field name="tariff_fee_standard" optional="hide"/>
<field name="fee_id" optional="hide"/>
<field name="original_amount"/>
<field name="deduction_amount" optional="hide"/>
<field name="remarks"/>
@@ -11,7 +11,7 @@
<field name="water_meter_number" optional="hide"/>
<field name="due_date"/>
<field name="water_meter_reading" optional="hide"/>
<field name="water_fee_standard" optional="hide"/>
<field name="fee_id" optional="hide"/>
<field name="original_amount"/>
<field name="deduction_amount" optional="hide"/>
<field name="remarks"/>
@@ -14,9 +14,10 @@
<field name="payment_account" optional="hide"/>
<field name="billing_period" optional="hide"/>
<field name="meter_date" optional="hide"/>
<field name="last_meter"/>
<field name="last_meter" optional="hide"/>
<field name="last_dosage"/>
<field name="current_meter"/>
<field name="apply_standards" optional="hide"/>
<field name="fee_id" optional="hide"/>
<field name="price_unit" optional="hide"/>
<field name="ratio" optional="hide"/>
<field name="amount_wastage" optional="hide"/>
@@ -53,7 +54,7 @@
<field name="meter_date"/>
<field name="last_meter"/>
<field name="current_meter"/>
<field name="apply_standards"/>
<field name="fee_id"/>
<field name="price_unit"/>
<field name="ratio"/>
<field name="amount_wastage"/>
@@ -138,6 +138,7 @@
<field name="arch" type="xml">
<tree editable="bottom">
<field name="name"/>
<field name="amount"/>
</tree>
</field>
</record>
@@ -152,6 +153,7 @@
<field name="arch" type="xml">
<tree editable="bottom">
<field name="name"/>
<field name="amount"/>
</tree>
</field>
</record>
@@ -57,6 +57,7 @@ class PropertyTariffList(models.Model):
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
class PropertyWaterList(models.Model):
_inherit = 'property.water.list'
@@ -68,23 +69,82 @@ class PropertyElectricReading(models.Model):
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
def button_push_electric(self):
pass
for rec in self:
if rec.is_push:
raise UserError("该抄表已经推送,不能重复推送")
self.env["property.tariff.list"].create({
'tariff_meter_number': rec.code,
'property_id': rec.property_id.id if rec.property_id else None,
'contract_id': rec.contract_id.id if rec.contract_id else None,
'lessee_id':rec.contract_id.lessee_id.id if rec.contract_id.lessee_id else None,
'fee_id': rec.fee_id.id if rec.fee_id else None,
'due_date': rec.meter_date,
'original_amount':rec.fee_id.amount * rec.dosage if rec.fee_id.amount else 0,
'tariff_meter_reading': rec.dosage
})
rec.write({
'is_push': True,
})
def batch_reading_electric(self):
pass
archives_ids = self.env["property.electric.reading"].browse(
self._context.get('active_ids', self._context.get('active_id')))
for record in archives_ids:
if record.is_push:
raise UserError(f"该{record.name}仪表已经推送,不能重复推送")
self.env["property.water.list"].create({
'tariff_meter_number': record.code,
'property_id': record.property_id.id if record.property_id else None,
'contract_id': record.contract_id.id if record.contract_id else None,
'lessee_id': record.contract_id.lessee_id.id if record.contract_id.lessee_id else None,
'fee_id': record.fee_id.id if record.fee_id else None,
'due_date': record.meter_date,
'original_amount': record.fee_id.amount * record.dosage if record.fee_id.amount else 0,
'tariff_meter_reading': record.dosage
})
record.write({
'is_push': True,
})
class PropertyWaterReading(models.Model):
_inherit = 'property.water.reading'
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
def button_push_water(self):
pass
for rec in self:
if rec.is_push:
raise UserError("该抄表已经推送,不能重复推送")
self.env["property.water.list"].create({
'water_meter_number': rec.code,
'property_id': rec.property_id.id if rec.property_id else None,
'fee_id': rec.fee_id.id if rec.fee_id else None,
'lessee_id': rec.contract_id.lessee_id.id if rec.contract_id.lessee_id else None,
'contract_id': rec.contract_id.id if rec.contract_id else None,
'original_amount': rec.fee_id.amount * rec.dosage if rec.fee_id.amount else 0,
'due_date': rec.meter_date,
'water_meter_reading':rec.dosage
})
rec.write({
'is_push': True,
})
def batch_reading_water(self):
pass
archives_ids = self.env["property.water.reading"].browse(
self._context.get('active_ids', self._context.get('active_id')))
for record in archives_ids:
if record.is_push:
raise UserError(f"该{record.name}仪表已经推送,不能重复推送")
self.env["property.water.list"].create({
'water_meter_number': record.code,
'property_id': record.property_id.id if record.property_id else None,
'contract_id': record.contract_id.id if record.contract_id else None,
'lessee_id': record.contract_id.lessee_id.id if record.contract_id.lessee_id else None,
'fee_id': record.fee_id.id if record.fee_id else None,
'due_date': record.meter_date,
'original_amount': record.fee_id.amount * record.dosage if record.fee_id.amount else 0,
'water_meter_reading':record.dosage
})
record.write({
'is_push': True,
})
class PropertyMeterArchives(models.Model):
_inherit = 'property.meter.archives'
@@ -101,36 +161,41 @@ class PropertyMeterArchives(models.Model):
def button_reading_push(self):
for rec in self:
rec.write({
'is_push': True,
})
if rec.is_push:
raise UserError("该仪表已经推送,不能重复推送")
self.env["property.electric.reading"].create({
'code': rec.name,
'property_id': rec.yuthon_property_id.id if rec.yuthon_property_id else None,
'fee_id': rec.fee_id.id if rec.standards_id else None,
'lessee_id': rec.contract_id.lessee_id.id if rec.contract_id.lessee_id else None,
'ratio': rec.gauge_magnification,
'position': rec.unit_number,
'type': rec.type,
'contract_id':rec.contract_id.id
})
rec.write({
'is_push': True,
})
def batch_reading_push(self):
archives_ids = self.env["property.meter.archives"].browse(self._context.get('active_ids', self._context.get('active_id')))
for record in archives_ids:
record.write({
'is_push': True,
})
if record.is_push:
raise UserError(f"该{record.name}仪表已经推送,不能重复推送")
self.env["property.electric.reading"].create({
'code': record.name,
'property_id': record.yuthon_property_id.id if record.yuthon_property_id else None,
'fee_id': record.standards_id.id if record.standards_id else None,
'lessee_id': record.contract_id.lessee_id.id if record.contract_id.lessee_id else None,
'ratio': record.gauge_magnification,
'position': record.unit_number,
'type': record.type,
'contract_id':record.contract_id.id
})
record.write({
'is_push': True,
})
class PropertyMeterWater(models.Model):
_inherit = 'property.meter.water'
@@ -139,19 +204,21 @@ class PropertyMeterWater(models.Model):
def button_reading_water_push(self):
for rec in self:
rec.write({
'is_push': True,
})
if rec.is_push:
raise UserError(f"该仪表已经推送,不能重复推送")
self.env["property.water.reading"].create({
'code': rec.name ,
'property_id': rec.yuthon_property_id.id if rec.yuthon_property_id else None,
'ratio': rec.gauge_magnification,
'fee_id': rec.standards_id.id if rec.standards_id else None,
'lessee_id': rec.contract_id.lessee_id.id if rec.contract_id.lessee_id else None,
'position': rec.unit_number ,
'type': rec.type,
'contract_id': rec.contract_id.id
})
rec.write({
'is_push': True,
})
def batch_reading_water_push(self):
water_ids = self.env["property.meter.water"].browse(self._context.get('active_ids', self._context.get('active_id')))
@@ -164,6 +231,8 @@ class PropertyMeterWater(models.Model):
self.env["property.water.reading"].create({
'code': record.name,
'property_id': record.yuthon_property_id.id if record.yuthon_property_id else None,
'fee_id': record.standards_id.id if record.standards_id else None,
'lessee_id': record.contract_id.lessee_id.id if record.contract_id.lessee_id else None,
'ratio': record.gauge_magnification,
'position': record.unit_number,
'type': record.type,
@@ -187,7 +256,7 @@ class PropertyContractLine(models.Model):
yuthon_property_id = fields.Many2one('yuthon.property', string="关联物业信息")
lease_contract_id = fields.Many2one('property.lease.contract', string="合同名称")
lessee_id = fields.Many2one(related='yuthon_property_id.lessee_id', string="承租方")
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
start_time = fields.Date(string="生效日期")
end_date = fields.Date(string="失效日期")