添加功能

This commit is contained in:
zhou
2024-12-30 11:46:57 +08:00
parent a30b926ee6
commit 3201775b0a
16 changed files with 172 additions and 103 deletions
+1 -1
View File
@@ -20,7 +20,7 @@
'data/publish_applicant_setting_data.xml',
'security/ir.model.access.csv',
'security/hr_group.xml',
'security/hr_job_company_security_group.xml',
'security/hr_company_security_group.xml',
'views/yuthon_hr_employee_views.xml',
'views/yuthon_hr_department_views.xml',
'views/applicant_tage_setting_views.xml',
@@ -73,7 +73,6 @@ class YuthonHrEmployee(models.Model):
social_insurance_date = fields.Date(string="缴纳社保日期")
social_insurance_time = fields.Char(string="社保时长", compute='_compute_social_insurance_info', store=True)
compute_month = fields.Integer(string="社保时长假期")
open_start_time_today = fields.Date(string="工作至今")
interrupt_work_month = fields.Integer(string="中断工作月数")
cumulative_work_month = fields.Integer(string="累计工作月数", compute='_compute_social_insurance_info', store=True)
cumulative_work_years = fields.Char(string="累计工作年限", compute='_compute_cumulative_work_years', store=True)
@@ -243,13 +242,13 @@ class YuthonHrEmployee(models.Model):
else:
record.company_old = None
@api.depends('social_insurance_date', 'interrupt_work_month')
@api.depends('open_start_time', 'interrupt_work_month')
def _compute_social_insurance_info(self):
for record in self:
cumulative_months = 0
if record.social_insurance_date:
if record.open_start_time:
today = datetime.now().date()
delta = relativedelta(today, record.social_insurance_date)
delta = relativedelta(today, record.open_start_time)
cumulative_months = delta.years * 12 + delta.months
record.cumulative_work_month = cumulative_months
total_months = cumulative_months - record.interrupt_work_month
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="inherit_hr_job_views_rule" model="ir.rule">
<field name="name">岗位编制公司过滤</field>
<field name="model_id" ref="model_hr_job"/>
<field name="domain_force">[('yuthon_company', '=', user.employee_id.yuthon_company)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
<record id="inherit_hr_employee_views_rule" model="ir.rule">
<field name="name">花名册公司过滤</field>
<field name="model_id" ref="model_hr_employee"/>
<field name="domain_force">[('yuthon_company', '=', user.employee_id.yuthon_company)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
<record id="inherit_soong_user_role_views_rule" model="ir.rule">
<field name="name">角色公司过滤</field>
<field name="model_id" ref="model_soong_user_role"/>
<field name="domain_force">[('yuthon_company', '=', user.employee_id.yuthon_company)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
<record id="inherit_hr_department_views_rule" model="ir.rule">
<field name="name">部门公司过滤</field>
<field name="model_id" ref="model_hr_department"/>
<field name="domain_force">[('yuthon_company', '=', user.employee_id.yuthon_company)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
</odoo>
+1 -1
View File
@@ -16,7 +16,7 @@
<record id="rule_hr_employee_user" model="ir.rule">
<field name="name">User: 角色匹配的数据访问</field>
<field name="model_id" ref="module_hr_employee"/>
<field name="groups" eval="[(4, ref('group_hr_employee_user')), (4, ref('group_hr_employee_manager'))]"/>
<field name="groups" eval="[(4, ref('group_hr_employee_user'))]"/>
<!-- <field name="domain_force">[('yuthon_company', '=', user.employee_id.yuthon_company)]</field>-->
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="inherit_hr_job_views_rule" model="ir.rule">
<field name="name">岗位编制公司过滤</field>
<field name="model_id" ref="model_hr_job"/>
<field name="domain_force">[('yuthon_company', '=', user.employee_id.yuthon_company)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="True"/>
</record>
</odoo>
@@ -116,7 +116,6 @@
<!-- <field name="new_start_contract_data"/>-->
<!-- <field name="new_end_contract_data"/>-->
<field name="open_start_time"/>
<field name="open_start_time_today"/>
<field name="social_insurance_date"/>
<field name="compute_month" invisible="1"/>
<field name="social_insurance_time"/>
@@ -237,7 +236,6 @@
<field name="dang_data" optional="hide"/>
<!-- <field name="new_start_contract_data" optional="hide"/>-->
<field name="open_start_time" optional="hide"/>
<field name="open_start_time_today" optional="hide"/>
<field name="interrupt_work_month" optional="hide"/>
<field name="cumulative_work_month" optional="hide"/>
<field name="cumulative_work_years" optional="hide"/>
@@ -7,7 +7,7 @@ class PropertyManagementList(models.Model):
contract_code = fields.Char(string='合同编号', required=True)
property_id = fields.Many2one('yuthon.property', string='物业')
lessee_id = fields.Many2one('yuthon.property.lessee', string='承租方')
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
due_date = fields.Date(string='应收日期')
year = fields.Char(string='所属年')
month = fields.Char(string='所属月')
@@ -7,4 +7,4 @@ class PropertyOtherList(models.Model):
contract_code = fields.Char(string='合同编号', required=True)
property_id = fields.Many2one('yuthon.property', string='物业')
lessee_id = fields.Many2one('yuthon.property.lessee', string='承租方')
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
@@ -7,7 +7,7 @@ class PropertyPenaltyList(models.Model):
contract_code = fields.Char(string='合同编号', required=True)
property_id = fields.Many2one('yuthon.property', string='物业')
lessee_id = fields.Many2one('yuthon.property.lessee', string='承租方')
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
rent_id = fields.Char(string='租金id')
start_date = fields.Date(string='开始日期')
end_date = fields.Date(string='结束日期')
+1 -1
View File
@@ -7,7 +7,7 @@ class PropertyRentList(models.Model):
contract_code = fields.Char(string='合同编号', required=True)
property_id = fields.Many2one('yuthon.property', string='物业')
lessee_id = fields.Many2one('yuthon.property.lessee', string='承租方')
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
due_date = fields.Date(string='应收日期')
year = fields.Char(string='所属年')
month = fields.Char(string='所属月')
@@ -7,7 +7,7 @@ class PropertyTariffList(models.Model):
contract_code = fields.Char(string='合同编号')
property_id = fields.Many2one('yuthon.property', string='物业')
lessee_id = fields.Many2one('yuthon.property.lessee', string='承租方')
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
tariff_meter_number = fields.Char(string='电费编号')
due_date = fields.Date(string='应收日期')
year = fields.Char(string='所属年')
@@ -7,7 +7,7 @@ class PropertyWaterList(models.Model):
contract_code = fields.Char(string='合同编号')
property_id = fields.Many2one('yuthon.property', string='物业')
lessee_id = fields.Many2one('yuthon.property.lessee', string='承租方')
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
water_meter_number = fields.Char(string='水表编号')
due_date = fields.Date(string='应收日期')
year = fields.Char(string='所属年')
+1 -1
View File
@@ -63,7 +63,7 @@ class YuthonProperty(models.Model):
end_date = fields.Date(string="失效日期")
purpose_id = fields.Many2one('yuthon.resource.purpose', string="管理类型")
admin_id = fields.Many2one('res.users', string="管理员")
lessee_id = fields.Many2one('yuthon.property.lessee', string='承租方')
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
title_address = fields.Many2one('yuthon.property.message', string="产权地址")
yuthon_company = fields.Selection([('thtz', '天河投资'), ('thwg', '天河物管'), ('thlc', '天河粮储'), ('thtj', '天城投建'), ('housing', '房总')],string="所属公司")
rental_address = fields.Text(string="出租地址")
@@ -29,24 +29,25 @@ class PropertyLeaseContract(models.Model):
_rec_name = 'name'
name = fields.Char(string='物业信息')
serial_number = fields.Char(string="流水号")
code = fields.Char(string="流水号", default=lambda self: self.env['ir.sequence'].next_by_code('property_lease_contract_code'))
admin_id = fields.Many2one('res.users', string="管理员")
code = fields.Char(string="合同编号", default=lambda self: self.env['ir.sequence'].next_by_code('property_lease_contract_code'))
property_documents_ids = fields.Many2many('documents.document', string="租赁合同文件")
contract_code = fields.Char(string="合同编号")
property_documents_ids = fields.Many2many('ir.attachment', string="租赁合同文件")
lessor = fields.Char(string="出租方")
lessee_id = fields.Many2one('yuthon.property.lessee', string='承租方')
users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
#承租方的个人信息
contact = fields.Char(string="联系人")
phone = fields.Char(string="联系电话")
email = fields.Char(string="电子邮箱")
invoicing_type = fields.Selection([('spot', '专票'), ('cape', '普票')], string="开票类型")
rental_purposes = fields.Many2one('yuthon.rental.purpose',string="出租用途")
invoicing_begins = fields.Char(string="开票开头")
tax_number = fields.Char(string="税号")
industry = fields.Char(string="行业")
address_for_delivery = fields.Char(string="送达地址")
# 承租方的个人信息
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
contact = fields.Char(related='lessee_id.contact', string="联系人")
phone = fields.Char(related='lessee_id.phone', string="联系电话")
email = fields.Char(related='lessee_id.email', string="电子邮箱")
invoicing_type = fields.Selection([('spot', '专票'), ('cape', '普票')], related='lessee_id.invoicing_type', string="开票类型")
rental_purposes = fields.Many2one(related='lessee_id.rental_purposes', string="出租用途")
invoicing_begins = fields.Char(related='lessee_id.invoicing_begins', string="开票开头")
tax_number = fields.Char(related='lessee_id.tax_number', string="税号")
industry = fields.Char(related='lessee_id.industry', string="行业")
address_for_delivery = fields.Text(related='lessee_id.address',string="送达地址")
lease_term = fields.Float(string="租期")
lease_term_year = fields.Integer(string="租期(年)")
# lease_term_year_uom = fields.Selection([('year', '年')], default="year", readonly=True, string="免租期单位")
@@ -55,7 +56,8 @@ class PropertyLeaseContract(models.Model):
term_start_time = fields.Date(string="租期开始时间", default=fields.Datetime.now)
term_end_time = fields.Date(string="租期结束时间")
cycle_dict =fields.Selection([('monthly','月度'), ('quarter','季度'), ('half','半年'),('year','年度')],string='付款方式')
cycle_mode = fields.Selection([('fixed','合同月'), ('floating','自然月')],string='周期方式')
cycle_mode = fields.Selection([('fixed_monthly','合同月'), ('floating_monthly','自然月'), ('fixed_quarter', '合同季'), ('floating_monthly', '自然季'),
('fixed_year', '合同年'), ('floating_year', '自然年')], string='周期方式', default='fixed_monthly')
expected_reminders = fields.Char(string="逾期提醒")
increment_method = fields.Selection([('percentage','百分比'),('increment_price','递增单价'),('increment_amount','递增金额')], string='每月递增', default='percentage')
increment_percentage = fields.Float(string="递增百分比")
@@ -84,28 +86,28 @@ class PropertyLeaseContract(models.Model):
tax = fields.Float(string="税金")
miscellaneous = fields.Char(string="其他约定")
total_area = fields.Float(string="总面积", digits=(16, 4))
hydropower_company = fields.Char(string="收管理水电公司名称")
hydropower_account = fields.Char(string="收管理水电公司账号")
contract_type = fields.Selection([('lease_renewal', '续租'), ('interim', '临租'), ('new', '补充协议')], string="合同类型")
contract_type = fields.Selection([('lease_renewal', '续租'), ('interim', '临租'), ('new', '补充协议'), ('first', '首租')], string="合同类型", default='first')
rent_company = fields.Char(string="收租公司名称")
rent_account = fields.Char(string="收租公司账号")
lease_ids = fields.One2many('property.lease.contract.line', 'lease_id',string="租赁信息明细行")
breakdown_ids = fields.One2many('property.rent.breakdown.line', 'breakdown_id', string="物业租金明细行")
fee_ids = fields.One2many('property.meter.fee.line', 'fee_id', string="物业仪表费明细行")
water_fee_ids = fields.One2many('property.water.fee.line', 'contract_id', string="物业水费明细行")
electricity_fee_ids = fields.One2many('property.electric.fee.line', 'contract_id', string="物业电费明细行")
mange_fee_ids = fields.One2many('property.manage.fee.line', 'contract_id', string="物业管理费明细行")
other_ids = fields.One2many('property.other.fee.line', 'other_id', string="其他费用明细行")
rent_list_ids = fields.One2many('property.rent.list', 'contract_id', string="租金明细行")
management_list_ids = fields.One2many('property.management.list', 'contract_id', string="管理费用明细行")
# 附件
license_id = fields.Many2one('documents.document', string="营业执照")
card_id = fields.Many2one('documents.document', string="身份证")
legal_entity_id = fields.Many2one('documents.document', string="法人身份证")
power_attorney_id = fields.Many2one('documents.document', string="授权委托书")
handle_cards_id = fields.Many2one('documents.document', string="经办人身份证")
confirmation_transaction_id = fields.Many2one('documents.document', string="交易确认书")
responsibility_book_id = fields.Many2one('documents.document', string="安全生产责任书")
contract_id = fields.Many2one('documents.document', string="合同")
safety_id = fields.Many2one('documents.document', string="安全生产")
license_id = fields.Many2one('ir.attachment', string="营业执照")
card_id = fields.Many2one('ir.attachment', string="身份证")
legal_entity_id = fields.Many2one('ir.attachment', string="法人身份证")
power_attorney_id = fields.Many2one('ir.attachment', string="授权委托书")
handle_cards_id = fields.Many2one('ir.attachment', string="经办人身份证")
confirmation_transaction_id = fields.Many2one('ir.attachment', string="交易确认书")
responsibility_book_id = fields.Many2one('ir.attachment', string="安全生产责任书")
contract_id = fields.Many2one('ir.attachment', string="合同")
safety_id = fields.Many2one('ir.attachment', string="安全生产")
contract_time = fields.Date(string="合同签订日期")
handover_time = fields.Date(string="交接日期")
@@ -128,7 +130,6 @@ class PropertyLeaseContract(models.Model):
end_date = start_date + relativedelta(months=12)
all_period_rent = record.my_compute_all_period_rent(start_date, end_date)
record.first_year_rent = all_period_rent
all_start_date = record.term_start_time
all_end_date = record.term_end_time + relativedelta(days=1)
record.total_contract_receivables = record.my_compute_all_period_rent(all_start_date, all_end_date)
@@ -155,6 +156,15 @@ class PropertyLeaseContract(models.Model):
start_time = end_of_range
return time_ranges
@api.onchange('cycle_dict')
def onchange_cycle_dict(self):
if self.cycle_dict == 'monthly':
self.cycle_mode = 'fixed_monthly'
elif self.cycle_dict == 'quarter':
self.cycle_mode = 'fixed_quarter'
elif self.cycle_dict == 'year':
self.cycle_mode = 'fixed_year'
# @staticmethod
# def divide_time_range_floating(start_time, end_time, months):
# time_ranges = []
@@ -452,11 +462,35 @@ class PropertyRentBreakdownLine(models.Model):
month_number = fields.Integer(string="期间月数")
period_rent = fields.Float(string="期间租金")
class PropertyMeterFeeLine(models.Model):
_name = 'property.meter.fee.line'
_description = '物业仪表费明细行'
fee_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
class PropertyWaterFeeLine(models.Model):
_name = 'property.water.fee.line'
_description = '物业水费明细行'
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
charges = fields.Char(string="收费项")
fees = fields.Char(string="收费标准")
proportional = fields.Float(string="赔率/比例")
start_data = fields.Date(string="开始日期")
end_data = fields.Date(string="结束日期")
class PropertyElectricFeeLine(models.Model):
_name = 'property.electric.fee.line'
_description = '物业电费明细行'
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
charges = fields.Char(string="收费项")
fees = fields.Char(string="收费标准")
proportional = fields.Float(string="赔率/比例")
start_data = fields.Date(string="开始日期")
end_data = fields.Date(string="结束日期")
class PropertyManageFeeLine(models.Model):
_name = 'property.manage.fee.line'
_description = '物业管理费明细行'
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
charges = fields.Char(string="收费项")
fees = fields.Char(string="收费标准")
proportional = fields.Float(string="赔率/比例")
@@ -27,7 +27,9 @@ access_property_equity,property_equity,model_property_equity,base.group_user,1,1
access_property_information_detail_lines,property_information_detail_lines,model_property_information_detail_lines,base.group_user,1,1,1,1
access_property_lease_contract_line,property_lease_contract_line,model_property_lease_contract_line,base.group_user,1,1,1,1
access_property_rent_breakdown_line,property_rent_breakdown_line,model_property_rent_breakdown_line,base.group_user,1,1,1,1
access_property_meter_fee_line,property_meter_fee_line,model_property_meter_fee_line,base.group_user,1,1,1,1
access_property_water_fee_line,property_water_fee_line,model_property_water_fee_line,base.group_user,1,1,1,1
access_property_electric_fee_line,property_electric_fee_line,model_property_electric_fee_line,base.group_user,1,1,1,1
access_property_manage_fee_line,property_manage_fee_line,model_property_manage_fee_line,base.group_user,1,1,1,1
access_property_other_fee_line,property_other_fee_line,model_property_other_fee_line,base.group_user,1,1,1,1
access_property_renamed,property_renamed,model_property_renamed,base.group_user,1,1,1,1
access_property_lessee_change,property_lessee_change,model_property_lessee_change,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
27 access_property_information_detail_lines property_information_detail_lines model_property_information_detail_lines base.group_user 1 1 1 1
28 access_property_lease_contract_line property_lease_contract_line model_property_lease_contract_line base.group_user 1 1 1 1
29 access_property_rent_breakdown_line property_rent_breakdown_line model_property_rent_breakdown_line base.group_user 1 1 1 1
30 access_property_meter_fee_line access_property_water_fee_line property_meter_fee_line property_water_fee_line model_property_meter_fee_line model_property_water_fee_line base.group_user 1 1 1 1
31 access_property_electric_fee_line property_electric_fee_line model_property_electric_fee_line base.group_user 1 1 1 1
32 access_property_manage_fee_line property_manage_fee_line model_property_manage_fee_line base.group_user 1 1 1 1
33 access_property_other_fee_line property_other_fee_line model_property_other_fee_line base.group_user 1 1 1 1
34 access_property_renamed property_renamed model_property_renamed base.group_user 1 1 1 1
35 access_property_lessee_change property_lessee_change model_property_lessee_change base.group_user 1 1 1 1
@@ -27,9 +27,9 @@
<button name="action_generate_administrative_expenses" class="oe_link btn btn-primary" type="object" string="生成管理费用"/>
</header>
<sheet>
<field name="code" readonly="1"/>
<group string="基本信息">
<field name="name" required="1"/>
<field name="code"/>
<field name="property_documents_ids" widget="many2many_tags">
<tree>
<field name="name"/>
@@ -38,7 +38,7 @@
<field name="lessor"/>
<field name="lessee_id"/>
<field name="users_id"/>
<field name="department_id"/>
<field name="department_id" invisible="1"/>
</group>
<group col="3" string="承租方个人信息">
<group>
@@ -70,7 +70,13 @@
</div>
<field name="term_start_time" required="1"/>
<field name="term_end_time" required="1"/>
<field name="total_area" />
<field name="cycle_dict"/>
<field name="cycle_mode"/>
<field name="performance_bonds_write"/>
<field name="deposit"/>
<field name="first_year_rent"/>
<field name="miscellaneous"/>
</group>
<group>
<field name="expected_reminders"/>
@@ -78,7 +84,13 @@
<field name="increment_percentage" invisible="increment_method != 'percentage'"/>
<field name="increment_price" invisible="increment_method != 'increment_price'"/>
<field name="increment_amount" invisible="increment_method != 'increment_amount'"/>
<field name="breach_time"/>
<field name="percentage_liquidated_damages"/>
<field name="date_of_payment"/>
<field name="contract_type"/>
<field name="rent"/>
<field name="rent_company"/>
<field name="rent_account"/>
</group>
<group>
<label for="rent_free_period_year"/>
@@ -90,40 +102,13 @@
</div>
<field name="first_years_begin"/>
<field name="increments_every_few_years"/>
</group>
<group>
<field name="total_area" />
<field name="cycle_dict"/>
<field name="cycle_mode"/>
<field name="serial_number"/>
</group>
<group>
<field name="breach_time"/>
<field name="percentage_liquidated_damages"/>
<field name="date_of_payment"/>
<field name="contract_type"/>
<field name="rent"/>
</group>
<group>
<field name="admin_id"/>
<field name="unit_price"/>
<field name="tax"/>
<field name="performance_bonds"/>
</group>
<group>
<field name="performance_bonds_write"/>
<field name="deposit"/>
<field name="first_year_rent"/>
<field name="miscellaneous"/>
<field name="rent_company"/>
<field name="rent_account"/>
</group>
<group>
<field name="total_contract_receivables"/>
<field name="tax_rate"/>
<field name="not_tax_amount"/>
<field name="hydropower_company"/>
<field name="hydropower_account"/>
</group>
</group>
<notebook>
@@ -152,17 +137,41 @@
</tree>
</field>
</page>
<page string="仪表费">
<field name="fee_ids" string=" ">
<tree editable="bottom">
<field name="fee_id" column_invisible="1"/>
<field name="charges"/>
<field name="fees"/>
<field name="proportional"/>
<field name="start_data"/>
<field name="end_data"/>
</tree>
</field>
<page string="水费">
<field name="water_fee_ids" string=" ">
<tree editable="bottom">
<field name="contract_id" column_invisible="1"/>
<field name="charges"/>
<field name="fees"/>
<field name="proportional"/>
<field name="start_data"/>
<field name="end_data"/>
</tree>
</field>
</page>
<page string="电费">
<field name="electricity_fee_ids" string=" ">
<tree editable="bottom">
<field name="contract_id" column_invisible="1"/>
<field name="charges"/>
<field name="fees"/>
<field name="proportional"/>
<field name="start_data"/>
<field name="end_data"/>
</tree>
</field>
</page>
<page string="管理费">
<field name="mange_fee_ids" string=" ">
<tree editable="bottom">
<field name="contract_id" column_invisible="1"/>
<field name="charges"/>
<field name="fees"/>
<field name="proportional"/>
<field name="start_data"/>
<field name="end_data"/>
</tree>
</field>
</page>
<page string="其他费用">
<field name="other_ids" string=" ">