添加功能

This commit is contained in:
zhou
2025-01-04 18:02:51 +08:00
parent d07fafce5e
commit 0e3b8f4dd1
8 changed files with 362 additions and 40 deletions
@@ -306,7 +306,7 @@ class SoongWorkflowMixin(models.AbstractModel):
record_obj = self.env["soong.workflow.record"].search([("res_model", "=", rec._name), ("res_id", "=", rec.id)])
current_user_id = self.env.user.id
state = '拟办' if self.state == 'start' else self.state
button_ids = self.workflow_id.node_ids.search([('name', '=', state), ('workflow_id', '=', self.workflow_id.id)]).button_ids
button_ids = self.workflow_id.node_ids.search([('node_name', '=', state), ('workflow_id', '=', self.workflow_id.id)]).button_ids
user_ids_list = []
if state != 'end':
if button_ids:
+1 -1
View File
@@ -58,7 +58,7 @@
<field name="is_sticky" string="置顶"/>
</group>
<group>
<field name="employee_ids" widget="many2many_tags" required="1" domain="[('yuthon_company', '=', yuthon_company)]"/>/>
<field name="employee_ids" widget="many2many_tags" required="1" domain="[('yuthon_company', '=', yuthon_company)]"/>
</group>
<group>
<field name="is_change_notice"/>
+2 -2
View File
@@ -77,10 +77,10 @@
sequence="3"/>
<menuitem id="yuthon_property_estate_menu"
sequence="9"
name="合同"
name="租赁合同"
parent="yuthon_property_menu_root"/>
<menuitem id="yuthon_property_estate_works_menu"
sequence="2"
sequence="5"
name="建设工程"
parent="yuthon_property_estate_menu"
action="property_assess_action"/>
@@ -88,7 +88,6 @@
<field name="name">水表抄表</field>
<field name="res_model">property.meter.reading</field>
<field name="view_mode">tree,form,search</field>
<field name="context">{'search_default_property_id': 1, 'search_default_reading_type': 1}</field>
<field name="domain">[('meter_type','=','water')]</field>
</record>
<record id="all_data_relevance_property" model="ir.actions.server">
@@ -86,16 +86,16 @@
</group>
</group>
<group col="3">
<group>
<field name="is_message_fee"/>
<field name="message_standard_id" invisible="not is_message_fee"/>
</group>
<group>
<field name="is_electricity_meter"/>
</group>
<group>
<field name="is_meter"/>
</group>
<group>
<field name="is_message_fee"/>
<field name="message_standard_id" invisible="not is_message_fee"/>
</group>
</group>
<notebook>
<page string="产权信息">
@@ -94,7 +94,8 @@ class PropertyLeaseContract(models.Model):
is_mange = fields.Boolean(string="是否有管理费")
miscellaneous = fields.Text(string="其他约定")
total_area = fields.Float(string="总面积", digits=(16, 4))
state = fields.Selection([('new', '新建'),('approval','审批'),('cancel','作废')], string="状态", default='new')
condition = fields.Selection([('new', '新建'),('approval','审批'),('cancel','作废')], string="状态", default='new')
message_type = fields.Selection([('be_executed','待执行'), ('executed','已执行'), ('expired','已终止'), ('advance','提前终止')], string="合同状态")
contract_type = fields.Selection([('lease_renewal', '续租'), ('interim', '临租'), ('new', '补充协议'), ('first', '首租')], string="合同类型", default='first')
lease_ids = fields.One2many('property.lease.contract.line', 'lease_id',string="物业信息明细行")
breakdown_ids = fields.One2many('property.rent.breakdown.line', 'breakdown_id', string="物业租金明细行")
@@ -522,6 +523,14 @@ class PropertyLeaseContract(models.Model):
for record in contract_ids:
record.use_address = record.name
def action_update_contract(self):
contract_ids = self.env["property.lease.contract"].browse(self._context.get('active_ids', self._context.get('active_id')))
for record in contract_ids:
record.write({
'condition':'new',
})
def action_copy_record1(self):
for record in self:
contract_id = self.env['property.lease.contract'].create({
@@ -530,7 +539,7 @@ class PropertyLeaseContract(models.Model):
'contract_date': record.contract_date,
'lessee_id': record.lessee_id.id,
'use_address': record.use_address,
'state':'new',
'condition':'new',
'admin_id': record.admin_id.id,
'company_id':record.company_id.id,
'rental_purposes': record.rental_purposes.id,
@@ -28,7 +28,6 @@
string="生成租金费用"/>
<button name="action_generate_administrative_expenses" class="oe_link btn btn-primary" type="object"
string="生成管理费用"/>
<button name="action_copy_record1" type="object" string="复制"/>
</header>
<sheet>
<group col="2">
@@ -59,7 +58,7 @@
<field name="department_id" invisible="1"/>
<field name="name" required="1"/>
<field name="use_address"/>
<field name="state"/>
<field name="condition" readonly="1"/>
</group>
<notebook>
<page string="物业列表">
@@ -246,6 +245,254 @@
</form>
</field>
</record>
<record id="view_property_lease_contract_tree1" model="ir.ui.view">
<field name="name">property.lease.contract.tree</field>
<field name="model">property.lease.contract</field>
<field name="arch" type="xml">
<tree string="租赁合同审批">
<field name="code"/>
<field name="contract_code"/>
<field name="lessee_id"/>
<field name="name"/>
<field name="term_start_time"/>
<field name="term_end_time"/>
<field name="rent"/>
<field name="deposit"/>
<field name="contract_date"/>
</tree>
</field>
</record>
<record id="view_property_lease_contract_form1" model="ir.ui.view">
<field name="name">property.lease.contract.form</field>
<field name="model">property.lease.contract</field>
<field name="arch" type="xml">
<form string="物业合同管理" create="False" edit="False" delete="False">
<header>
<button name="action_generate_rental_charges" class="oe_link btn btn-primary" type="object"
string="生成租金费用"/>
<button name="action_generate_administrative_expenses" class="oe_link btn btn-primary" type="object"
string="生成管理费用"/>
<button name="action_copy_record1" type="object" string="复制"/>
</header>
<sheet>
<group col="2">
<group>
<field name="code" readonly="1" string="流水号:"/>
</group>
<group>
<field name="is_split" invisible="1"/>
<field name="split_context" invisible="not is_split" readonly="1"/>
</group>
</group>
<group col="3" string="基本信息">
<group>
<field name="contract_code" required="1"/>
</group>
<group>
<field name="contract_date" required="1"/>
</group>
<group>
<field name="contract_type" required="1"/>
</group>
</group>
<group>
<field name="rent_company" string="出租方"/>
<field name="company_id" invisible="1" required="1"/>
<field name="lessee_id" required="1"/>
<field name="users_id" readonly="1" invisible="1"/>
<field name="department_id" invisible="1"/>
<field name="name" required="1"/>
<field name="use_address"/>
<field name="message_type" readonly="1"/>
</group>
<notebook>
<page string="物业列表">
<field name="lease_ids" string=" " required="1">
<tree editable="bottom">
<field name="lease_id" column_invisible="1"/>
<field name="address_id"/>
<field name="property_area"/>
<field name="evaluate_unit_price"/>
</tree>
</field>
</page>
<page string="租金明细">
<button name="action_generate_details" class="oe_link btn btn-primary" type="object"
string="生成明细"/>
<field name="breakdown_ids" string=" " >
<tree editable="bottom">
<field name="breakdown_id" column_invisible="1"/>
<field name="charges"/>
<field name="unit_price"/>
<field name="monthly_amount"/>
<field name="start_data"/>
<field name="end_data"/>
<field name="month_number"/>
<field name="period_rent"/>
</tree>
</field>
</page>
<page string="其他费用">
<field name="other_ids" string=" ">
<tree editable="bottom">
<field name="other_id" column_invisible="1"/>
<field name="charges"/>
<field name="coping"/>
<field name="coping_time"/>
</tree>
</field>
</page>
<page string="附件">
<group col="2">
<group>
<field name="license_id" widget="preview_many2one"/>
<field name="card_id" widget="preview_many2one"/>
<field name="legal_entity_id" widget="preview_many2one"/>
<field name="confirmation_transaction_id" widget="preview_many2one"/>
<field name="handover_time" widget="preview_many2one"/>
</group>
<group>
<field name="power_attorney_id" widget="preview_many2one"/>
<field name="handle_cards_id" widget="preview_many2one"/>
<field name="confirmation_transaction_id" widget="preview_many2one"/>
</group>
</group>
</page>
</notebook>
<group col="2" string="承租方个人信息">
<group>
<field name="contact" required="1"/>
<field name="phone" required="1"/>
<field name="email" required="1"/>
<field name="tax_number" required="1"/>
</group>
<group>
<field name="invoicing_type" required="1"/>
<field name="invoicing_begins" required="1"/>
<field name="industry" required="1"/>
</group>
</group>
<group>
<field name="property_documents_ids" widget="many2many_tags" invisible="1">
<tree>
<field name="name"/>
</tree>
</field>
</group>
<group col="2" string="租赁期限">
<group>
<label for="lease_term_year"/>
<div class="d-inline-flex w-100">
<field name="lease_term_year" required="1"/>
年
<field name="lease_term_month" required="1"/>
月
</div>
<field name="term_start_time" required="1"/>
<field name="term_end_time" required="1"/>
<field name="cycle_mode" required="1"/>
<field name="cycle_dict" required="1"/>
<field name="address_for_delivery" required="1"/>
</group>
<group>
<field name="first_pay" required="1"/>
<field name="date_payment_date" required="1"/>
<field name="total_area"/>
<field name="expected_reminders" required="1"/>
<field name="rental_purposes" required="1"/>
</group>
</group>
<group col="2" string="收费详细">
<group>
<label for="rent_free_period_month"/>
<div class="d-inline-flex w-100">
<field name="rent_free_period_month" required="1" class="me-2"/>
月
<field name="rent_free_period_days" required="1" class="me-2"/>
日
</div>
<field name="tax_rate" required="1"/>
<field name="tax" readonly="1"/>
<field name="not_tax_amount" readonly="1"/>
<field name="increment_method" required="1"/>
<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'"/>
<label for="first_years_begin"/>
<div class="d-inline-flex w-100">
<field name="first_years_begin" string="自第" class="me-2" style="max-width: 11rem !important;"/>年开始,每
<field name="increments_every_few_years" class="me-2" style="max-width: 11rem !important;"/>年递增
</div>
<!-- <field name="first_years_begin" required="1"/>-->
<!-- <field name="increments_every_few_years" required="1"/>-->
<field name="admin_id" invisible="1"/>
<field name="is_water" invisible="1"/>
<field name="is_electricity" invisible="1"/>
<field name="is_mange" invisible="1"/>
<field name="performance_bonds_write" invisible="1"/>
</group>
<group>
<field name="rent" string="月租金" invisible="cycle_dict != 'monthly'" required="1"/>
<field name="rent" string="季租金" invisible="cycle_dict != 'quarter'" required="1"/>
<field name="rent" string="半年租金" invisible="cycle_dict != 'half'" required="1"/>
<field name="rent" string="年租金" invisible="cycle_dict != 'year'" required="1"/>
<field name="unit_price" required="1"/>
<field name="breach" required="1"/>
<field name="percentage_liquidated_damages" required="1"/>
<field name="first_year_rent" required="1"/>
<field name="total_contract_receivables" required="1"/>
</group>
</group>
<group>
<group>
<field name="deposit_type" required="1"/>
</group>
<group>
<field name="deposit" string=" " readonly="0"/>
</group>
</group>
<notebook>
<page string="水费" invisible="not is_water">
<field name="water_fee_ids" string=" ">
<tree editable="bottom">
<field name="contract_id" column_invisible="1"/>
<field name="charges"/>
<field name="fees_id"/>
<field name="proportional"/>
</tree>
</field>
</page>
<page string="电费" invisible="not is_electricity">
<field name="electricity_fee_ids" string=" ">
<tree editable="bottom">
<field name="contract_id" column_invisible="1"/>
<field name="charges"/>
<field name="fees_id"/>
<field name="proportional"/>
</tree>
</field>
</page>
<page string="管理费" invisible="not is_mange">
<field name="mange_fee_ids" string=" ">
<tree editable="bottom">
<field name="contract_id" column_invisible="1"/>
<field name="charges"/>
<field name="fees_id"/>
<field name="proportional"/>
</tree>
</field>
</page>
</notebook>
<group>
<field name="miscellaneous"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="property_lease_contract_search" model="ir.ui.view">
<field name="name">property.lease.contract.search</field>
<field name="model">property.lease.contract</field>
@@ -260,29 +507,70 @@
</search>
</field>
</record>
<record id="property_lease_contract_all_action" model="ir.actions.act_window">
<field name="name">租赁合同审批</field>
<field name="res_model">property.lease.contract</field>
<field name="view_mode">tree,form,search</field>
</record>
<record id="property_lease_contract_new_action" model="ir.actions.act_window">
<field name="name">租赁合同审批</field>
<field name="name">合同审批</field>
<field name="res_model">property.lease.contract</field>
<field name="view_mode">tree,form,search</field>
<field name="domain">[('state','=','new')] </field>
<field name="domain">[('condition','=','new')] </field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_form')})]"/>
</record>
<record id="property_lease_contract_approval_action" model="ir.actions.act_window">
<field name="name">租赁合同审批</field>
<field name="name">合同审批</field>
<field name="res_model">property.lease.contract</field>
<field name="view_mode">tree,form,search</field>
<field name="domain">[('state','=','approval')]</field>
<field name="domain">[('condition','=','approval')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_form')})]"/>
</record>
<record id="property_lease_contract_cancel_action" model="ir.actions.act_window">
<field name="name">租赁合同审批</field>
<field name="name">合同审批</field>
<field name="res_model">property.lease.contract</field>
<field name="view_mode">tree,form,search</field>
<field name="domain">[('state','=','cancel')]</field>
<field name="domain">[('condition','=','cancel')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_form')})]"/>
</record>
<record id="property_lease_contract_cancel_action1" model="ir.actions.act_window">
<field name="name">合同管理</field>
<field name="res_model">property.lease.contract</field>
<field name="view_mode">tree,form,search</field>
<field name="domain">[('message_type', '=', 'be_executed')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_tree1')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_form1')})]"/>
</record>
<record id="property_lease_contract_cancel_action2" model="ir.actions.act_window">
<field name="name">合同管理</field>
<field name="res_model">property.lease.contract</field>
<field name="view_mode">tree,form,search</field>
<field name="domain">[('message_type', '=', 'executed')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_tree1')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_form1')})]"/>
</record>
<record id="property_lease_contract_cancel_action3" model="ir.actions.act_window">
<field name="name">合同管理</field>
<field name="res_model">property.lease.contract</field>
<field name="view_mode">tree,form,search</field>
<field name="domain">[('message_type', '=', 'expired')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_tree1')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_form1')})]"/>
</record>
<record id="property_lease_contract_cancel_action4" model="ir.actions.act_window">
<field name="name">合同管理</field>
<field name="res_model">property.lease.contract</field>
<field name="view_mode">tree,form,search</field>
<field name="domain">[('message_type', '=', 'advance')]</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_tree1')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_property_approval.view_property_lease_contract_form1')})]"/>
</record>
<record id="all_data_write_property_contract" model="ir.actions.server">
<field name="name">批量导入合同</field>
<field name="model_id" ref="yuthon_property_approval.model_property_lease_contract"/>
@@ -318,4 +606,11 @@
<field name="state">code</field>
<field name="code">action = model.disposable_button()</field>
</record>
<record id="all_data_action_update_state" model="ir.actions.server">
<field name="name">更新状态</field>
<field name="model_id" ref="yuthon_property_approval.model_property_lease_contract"/>
<field name="binding_model_id" ref="yuthon_property_approval.model_property_lease_contract"/>
<field name="state">code</field>
<field name="code">action = model.action_update_contract()</field>
</record>
</odoo>
@@ -186,35 +186,54 @@
parent="yuthon_property_customer_process_management"
action="property_eligibility_action"/>
<!-- 合同 -->
<menuitem id="property_transfer_approval_menu"
<menuitem id="property_lease_contract_approval_menu"
parent="yuthon_property.yuthon_property_estate_menu"
name="物业交接审批"
action="view_property_transfer_action"
sequence="3"/>
<menuitem id="property_lease_contract_menu"
parent="yuthon_property.yuthon_property_estate_menu"
name="物业合同管理"
sequence="1"/>
<menuitem id="property_lease_contract_all_menu"
parent="property_lease_contract_menu"
name="全部"
action="property_lease_contract_all_action"
name="合同审批"
sequence="1"/>
<menuitem id="property_lease_contract_new_menu"
parent="property_lease_contract_menu"
parent="property_lease_contract_approval_menu"
name="新建"
action="property_lease_contract_new_action"
sequence="3"/>
<menuitem id="property_lease_contract_approval_menu"
parent="property_lease_contract_menu"
<menuitem id="property_lease_contract_approvals_menu"
parent="property_lease_contract_approval_menu"
name="审批"
action="property_lease_contract_approval_action"
sequence="5"/>
<menuitem id="property_lease_contract_cancel_menu"
parent="property_lease_contract_menu"
parent="property_lease_contract_approval_menu"
name="作废"
action="property_lease_contract_cancel_action"
sequence="7"/>
<menuitem id="property_lease_contract_management_menu"
parent="yuthon_property.yuthon_property_estate_menu"
name="合同管理"
sequence="3"/>
<menuitem id="property_lease_contract_be_executed_menu"
parent="property_lease_contract_management_menu"
name="待执行"
action="property_lease_contract_cancel_action1"
sequence="1"/>
<menuitem id="property_lease_contract_executed_menu"
parent="property_lease_contract_management_menu"
name="已执行"
action="property_lease_contract_cancel_action2"
sequence="5"/>
<menuitem id="property_lease_contract_expired_menu"
parent="property_lease_contract_management_menu"
name="已终止"
action="property_lease_contract_cancel_action3"
sequence="9"/>
<menuitem id="property_lease_contract_advance_menu"
parent="property_lease_contract_management_menu"
name="提前终止"
action="property_lease_contract_cancel_action4"
sequence="13"/>
<menuitem id="property_transfer_approval_menu"
parent="yuthon_property.yuthon_property_estate_menu"
name="物业交接审批"
action="view_property_transfer_action"
sequence="9"/>
<!--财务报表 -->
<menuitem id="yuthon_property_process"
sequence="99"