添加功能
This commit is contained in:
@@ -337,7 +337,7 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
current_user_id = self.env.user.id
|
||||
if self.state in ['申请人', '拟办']:
|
||||
if not record_obj:
|
||||
self.env["soong.workflow.record"].create({
|
||||
values = {
|
||||
"code": record_id.code,
|
||||
"res_model": rec._name,
|
||||
"department_id": rec.department_id.id,
|
||||
@@ -348,7 +348,28 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
"users_ids": [(4, current_user_id)],
|
||||
"employee_ids": self.env.user.employee_id,
|
||||
"write_date2": fields.Datetime.now(),
|
||||
})
|
||||
}
|
||||
# 查找匹配的字段
|
||||
matched_fields = self.find_fields_by_string(record_id)
|
||||
# 提取"事由"或"正文"字段的值
|
||||
text_fields = [f for f in matched_fields if
|
||||
'事由' in f['field_string'] or '正文' in f['field_string']]
|
||||
if text_fields:
|
||||
# 优先使用"事由"字段,没有则使用第一个"正文"字段
|
||||
reason_field = next((f for f in text_fields if '事由' in f['field_string']), text_fields[0])
|
||||
values["text"] = getattr(rec, reason_field['field_name'], '')
|
||||
|
||||
# 提取"附件"字段的值
|
||||
attachment_fields = [f for f in matched_fields if '附件' in f['field_string']]
|
||||
if attachment_fields and attachment_fields[0]['field_type'] in ['many2many', 'one2many']:
|
||||
# 处理附件关系字段
|
||||
attachment_field = attachment_fields[0]
|
||||
attachment_ids = getattr(rec, attachment_field['field_name'], [])
|
||||
if attachment_ids:
|
||||
values["documents_ids"] = [(6, 0, attachment_ids.ids)]
|
||||
# 创建工作流记录
|
||||
self.env["soong.workflow.record"].create(values)
|
||||
|
||||
if record_obj:
|
||||
record_obj.update({"workflow_id": rec.workflow_id.id,
|
||||
"node_id": rec.node_id.id,
|
||||
@@ -356,6 +377,30 @@ class SoongWorkflowMixin(models.AbstractModel):
|
||||
"write_date2": fields.Datetime.now(),
|
||||
})
|
||||
|
||||
def find_fields_by_string(self,record_id):
|
||||
"""
|
||||
根据模型名称和记录ID查找字段,其string属性包含特定关键词
|
||||
:param record_id: 记录id
|
||||
:return: 匹配的字段信息列表
|
||||
"""
|
||||
# 定义要查找的关键词
|
||||
keywords = ['正文', '事由', '附件']
|
||||
# 获取模型的所有字段
|
||||
fields = record_id.fields_get()
|
||||
# 存储匹配的字段信息
|
||||
matched_fields = []
|
||||
# 遍历所有字段,检查string属性
|
||||
for field_name, field_attrs in fields.items():
|
||||
field_string = field_attrs.get('string', '')
|
||||
# 检查字段的string是否包含任何关键词
|
||||
if any(keyword in field_string for keyword in keywords):
|
||||
matched_fields.append({
|
||||
'field_name': field_name,
|
||||
'field_string': field_string,
|
||||
'field_type': field_attrs.get('type'),
|
||||
})
|
||||
return matched_fields
|
||||
|
||||
def unlink(self):
|
||||
self.mapped("log_ids").unlink()
|
||||
self.mapped("log_ids2").unlink()
|
||||
|
||||
@@ -35,6 +35,8 @@ class SoongWorkflowRecord(models.Model):
|
||||
res_id = fields.Integer(string="Res ID", required=True)
|
||||
users_ids = fields.Many2many('res.users', string="用户")
|
||||
employee_ids = fields.Many2many('hr.employee', string="当前经办人")
|
||||
text = fields.Text(string="正文")
|
||||
documents_ids = fields.Many2many('ir.attachment', string="附件")
|
||||
workflow_id = fields.Many2one(comodel_name="soong.workflow", string="类型", ondelete="restrict")
|
||||
node_id = fields.Many2one(comodel_name="soong.workflow.node", string="当前节点")
|
||||
company_id = fields.Many2one(related="create_uid.company_id", string="公司")
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="workflow_id" string="审批类型"/>
|
||||
<filter name="my_department_shifts" string="本部门" domain="[('member_of_department', '=', True)]"/>
|
||||
<field name="text" optional="hide"/>
|
||||
<field name="documents_ids" optional="hide"/>
|
||||
<group expand="0" string="审批分组">
|
||||
<filter string="审批类型分组" name='group_by_approvals_group_id' context="{'group_by':'approvals_group_id'}"/>
|
||||
</group>
|
||||
@@ -35,6 +36,8 @@
|
||||
<field name="create_uid"/>
|
||||
<field name="write_date2"/>
|
||||
<field name="company_id" optional="hide"/>
|
||||
<field name="text" optional="hide"/>
|
||||
<field name="documents_ids" widget="preview_many2many"/>
|
||||
<field name="reclaim_state" column_invisible="1"/>
|
||||
<field name="member_of_department" optional="hide"/>
|
||||
<button name="delete_record" type="object" string="删除" class="btn-primary" confirm="你确定要删除吗?"/>
|
||||
@@ -129,7 +132,7 @@
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">soong.workflow.record</field>
|
||||
<field name="view_mode">tree,kanban,search</field>
|
||||
<field name="domain">[('reclaim_state', '=', False), ('approvals_group_id.name', '!=', '人力资源'), ('approvals_group_id.name', '!=', '考勤')]</field>
|
||||
<field name="domain">[('reclaim_state', '=', False), ('approvals_group_id.name', '!=', '人力资源'), ('approvals_group_id.name', '!=', '考勤'), ('member_of_department', '=', True)]</field>
|
||||
<field name="context">{'search_default_my_department_shifts': True,}</field>
|
||||
<field name="search_view_id" ref="soong_workflow_record_search"/>
|
||||
</record>
|
||||
|
||||
@@ -92,7 +92,7 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
record_id = self.env[self.res_model].search([('id', '=', self.res_id)])
|
||||
for ret in self.return_link_id:
|
||||
if ret.name in ['拟办', '申请人']:
|
||||
self.employee_ids = record_id.users_id.employee_id
|
||||
self.employee_ids1 = record_id.users_id.employee_ids
|
||||
elif self.node_btn_name == '退回':
|
||||
next_list = []
|
||||
workflow_id = self.return_link_id.node_button_id.workflow_id
|
||||
@@ -106,13 +106,16 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
else:
|
||||
if btn.is_automatic:
|
||||
employee_user_role_id = self.env['hr.employee'].search(
|
||||
[('user_role_id', '=', btn.users_role_id.id),
|
||||
['|', ('user_role_id', '=', btn.users_role_id.id),
|
||||
('user_role_id', 'in', btn.users_role_group_ids.user_role_ids.ids),
|
||||
('department_id', '=', record_id.department_id.id)])
|
||||
self.employee_ids = employee_user_role_id
|
||||
self.employee_ids1 = employee_user_role_id
|
||||
else:
|
||||
employee_user_role_ids = self.env['hr.employee'].search(
|
||||
[('user_role_id', '=', btn.users_role_id.id)])
|
||||
self.employee_ids = employee_user_role_ids
|
||||
['|', ('user_role_id', '=', btn.users_role_id.id),
|
||||
('user_role_id', 'in', btn.users_role_group_ids.user_role_ids.ids),
|
||||
])
|
||||
self.employee_ids1 = employee_user_role_ids
|
||||
|
||||
@api.onchange('trans_link_id')
|
||||
def onchange_trans_employee_ids(self):
|
||||
@@ -132,7 +135,6 @@ class SoongWorkflowCommentWizard(models.TransientModel):
|
||||
employee_user_role_ids = self.env['hr.employee'].sudo().search(['|', ('user_role_id', 'in', link_users_group_ids.user_role_ids.ids), ('user_role_ids', 'in', link_users_group_ids.user_role_ids.ids)])
|
||||
# 自动匹配
|
||||
employee_user_role_id = self.env['hr.employee'].sudo().search([('id', 'in', employee_user_role_ids.ids),
|
||||
# ("user_role_ids", "in", employee_user_role_ids.id),
|
||||
'|', ('department_id', '=', record_id.department_id.id),
|
||||
('department_ids', 'in', record_id.department_id.id),
|
||||
('company_id', '=', self.env.user.company_id.id)]) # 自动匹配
|
||||
|
||||
@@ -338,7 +338,7 @@ class HolidaysRequestBatch(models.Model):
|
||||
start_date = fields.Date(string="开始时间")
|
||||
end_date = fields.Date(string="结束时间")
|
||||
document_ids = fields.Many2many(
|
||||
string='文件',
|
||||
string='附件',
|
||||
comodel_name='ir.attachment',
|
||||
relation='leave_custom_doc_rel',
|
||||
column1='leave_id',
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<field name="inherit_id" ref="planning.planning_view_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='role_id']" position="after">
|
||||
<field name="planning_name" string="班次"/>
|
||||
<field name="department_id" string="部门" widget="ztree_select"/>
|
||||
</xpath>
|
||||
</field>
|
||||
|
||||
@@ -147,7 +147,7 @@ class PropertyLeaseContract(models.Model):
|
||||
lease_bank_ids = fields.One2many('property.bank.line', 'contract_id', string="承租方账户明细行")
|
||||
bank_statements_ids = fields.One2many('property.bank.statements', 'contract_id', string="银行流水明细行")
|
||||
management_list_ids = fields.One2many('property.management.list', 'contract_id', string="管理费用明细行")
|
||||
property_state = fields.Selection([('to', '待评估'), ('done', '已评估'), ('ing', '评估中')], string="状态", default=None)
|
||||
contact_state = fields.Selection([('to', '待执行' ), ('ing', '执行中'), ('terminate', '终止'), ('early_termination', '提前终止')], string='状态', default='to')
|
||||
# 附件
|
||||
license_id = fields.Many2one('ir.attachment', string="营业执照")
|
||||
legal_entity_id = fields.Many2one('ir.attachment', string="法人身份证")
|
||||
@@ -983,7 +983,11 @@ class PropertyLeaseContract(models.Model):
|
||||
return code
|
||||
|
||||
def action_copy_record1(self):
|
||||
for record in self:
|
||||
lease_contract_ids = self.env["property.lease.contract"].browse(
|
||||
self._context.get('active_ids', self._context.get('active_id')))
|
||||
for record in lease_contract_ids:
|
||||
if len(lease_contract_ids) > 1:
|
||||
raise UserError("只能选择一个拆分")
|
||||
record.is_contract = True
|
||||
record.is_child_contract = False
|
||||
record.number += 1
|
||||
@@ -1181,19 +1185,29 @@ class PropertyLeaseContract(models.Model):
|
||||
record.admin_id = record.lease_ids[0].admin_line_id.id
|
||||
|
||||
def get_property_contract_time(self):
|
||||
unique_property_ids = set()
|
||||
lease_contracts = self.env['property.lease.contract'].search([('end_comparison', 'in', ['red', 'yellow', 'blue'])])
|
||||
for record in lease_contracts:
|
||||
contracts = self.env['property.evaluation.plan'].search([])
|
||||
for contract in contracts:
|
||||
for property_id in contract.property_ids:
|
||||
unique_property_ids.add(property_id.id)
|
||||
records_only_in_tree1 = self.env['property.lease.contract'].search([
|
||||
('condition', 'not in', ['new', 'approval', 'cancel'])
|
||||
])
|
||||
today = fields.Date.today()
|
||||
for contract in records_only_in_tree1:
|
||||
# 获取时间字段
|
||||
actual_start = contract.actual_start_time
|
||||
actual_end = contract.actual_end_time
|
||||
term_end = contract.term_end_time
|
||||
# 根据时间条件更新状态
|
||||
if not actual_start or today < actual_start:
|
||||
# 待执行:实际开始时间未到或未设置
|
||||
contract.contact_state = 'to'
|
||||
elif actual_start and (not actual_end or today <= actual_end):
|
||||
# 执行中:已开始且未结束(或结束时间未设置)
|
||||
contract.contact_state = 'ing'
|
||||
else:
|
||||
# 已结束,判断是正常终止还是提前终止
|
||||
if actual_end and term_end and actual_end < term_end:
|
||||
contract.contact_state = 'early_termination' # 提前终止
|
||||
else:
|
||||
contract.contact_state = 'terminate' # 正常终止
|
||||
|
||||
lease_id_list = [lease.address_id.id for lease in record.lease_ids]
|
||||
should_process = any(lease_id not in unique_property_ids for lease_id in lease_id_list)
|
||||
if should_process:
|
||||
record.put_evaluation_plan()
|
||||
record.write({'property_state': 'to'})
|
||||
# 续租
|
||||
def button_lease_extension(self):
|
||||
lease_contract_ids = self.env["property.lease.contract"].browse(
|
||||
@@ -1275,7 +1289,7 @@ class PropertyLeaseContract(models.Model):
|
||||
'remake': first_address_id.remark if first_address_id else None,
|
||||
'assessment_category': 'rent_money',
|
||||
})
|
||||
record.write({'property_state': 'ing'})
|
||||
record.write({'contact_state': 'ing'})
|
||||
return {
|
||||
"name": "物业评估方案",
|
||||
'type': 'ir.actions.act_window',
|
||||
@@ -1288,7 +1302,7 @@ class PropertyLeaseContract(models.Model):
|
||||
for record in contract_ids:
|
||||
property_ids = []
|
||||
property_id = record.lease_ids[0].admin_line_id
|
||||
if record.property_state == 'done':
|
||||
if record.contact_state == 'done':
|
||||
raise UserError(f'{record.name}该物业已评估,请勿重复评估')
|
||||
rent_area = 0
|
||||
for lease_id in record.lease_ids:
|
||||
@@ -1306,7 +1320,7 @@ class PropertyLeaseContract(models.Model):
|
||||
'remake': property_id.remark,
|
||||
'assessment_category': 'rent_money',
|
||||
})
|
||||
record.write({'property_state': 'ing'})
|
||||
record.write({'contact_state': 'ing'})
|
||||
return {
|
||||
"name": "物业评估方案",
|
||||
'type': 'ir.actions.act_window',
|
||||
@@ -1314,7 +1328,6 @@ class PropertyLeaseContract(models.Model):
|
||||
"view_mode": "tree",
|
||||
}
|
||||
|
||||
|
||||
class PropertyLeaseContractLine(models.Model):
|
||||
_name = 'property.lease.contract.line'
|
||||
_description = '物业列表明细行'
|
||||
|
||||
@@ -355,8 +355,9 @@
|
||||
<!-- <button name="all_put_evaluation_plan" string="评估推送" type="object" class="btn btn-primary"/>-->
|
||||
<button name="button_lease_extension" type="object" class="btn-primary" string="续租"/>
|
||||
<button name="button_lease_return" type="object" class="btn-primary" string="退租"/>
|
||||
<button name="button_lease_change" type="object" class="btn-primary" string="变更"/>
|
||||
<button name="action_copy_record1" type="object" string="拆分"/>
|
||||
</header>
|
||||
|
||||
<field name="name"/>
|
||||
<field name="contract_code" decoration-danger = "is_equal"/>
|
||||
<field name="lessee_id"/>
|
||||
@@ -382,11 +383,10 @@
|
||||
<field name="deposit_status" column_invisible="1"/>
|
||||
<field name="company_id" string="公司"/>
|
||||
<field name="admin_id" string="负责人"/>
|
||||
<field name="property_state"/>
|
||||
<button name="put_evaluation_plan" type="object" class="btn-primary" string="评估推送" invisible="property_state == 'ing'"/>
|
||||
<field name="contact_state"/>
|
||||
<button name="put_evaluation_plan" type="object" class="btn-primary" string="评估推送" invisible="contact_state == 'ing'"/>
|
||||
<!-- <button name="button_lease_extension" type="object" class="btn-primary" string="续租"/>-->
|
||||
<!-- <button name="button_lease_return" type="object" class="btn-primary" string="退租"/>-->
|
||||
<button name="button_lease_change" type="object" class="btn-primary" string="变更"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -400,7 +400,6 @@
|
||||
string="生成租金费用" invisible="1"/>
|
||||
<button name="action_generate_administrative_expenses" class="oe_link btn btn-primary" type="object"
|
||||
string="生成管理费用" invisible="1"/>
|
||||
<button name="action_copy_record1" type="object" string="拆分"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<widget name="web_ribbon" title="待执行" bg_color="text-bg-success"
|
||||
@@ -428,35 +427,35 @@
|
||||
</div>
|
||||
<group col="4" string="基本信息">
|
||||
<group>
|
||||
<field name="contract_code"/>
|
||||
<field name="contract_code" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="rental_purposes"/>
|
||||
<field name="rental_purposes" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="contract_type"/>
|
||||
<field name="contract_type" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="contract_date"/>
|
||||
<field name="contract_date" readonly="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group>
|
||||
<field name="rent_company" string="出租方"/>
|
||||
<field name="rent_company" string="出租方" readonly="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="lessee_id"/>
|
||||
<field name="lessee_id" readonly="1"/>
|
||||
<field name="lessee_name" invisible="1"/>
|
||||
<field name="users_id" readonly="1" invisible="1"/>
|
||||
<field name="users_id" invisible="1"/>
|
||||
<field name="department_id" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="use_address"/>
|
||||
<field name="name" readonly="1"/>
|
||||
<field name="use_address" readonly="1"/>
|
||||
<field name="is_child_contract" invisible="1"/>
|
||||
<field name="is_contract" invisible="1"/>
|
||||
<field name="contract_source_id" invisible="not is_child_contract"/>
|
||||
<field name="property_state" invisible="1"/>
|
||||
<field name="contact_state" invisible="1"/>
|
||||
<field name="deposit_status" invisible="1"/>
|
||||
<field name="tenure_type" invisible="1"/>
|
||||
<field name="address_for_delivery"/>
|
||||
<field name="address_for_delivery" readonly="1"/>
|
||||
<field name="condition" invisible="1" readonly="1"/>
|
||||
<field name="is_equal" invisible="1"/>
|
||||
<field name="end_comparison" invisible="1"/>
|
||||
@@ -468,7 +467,7 @@
|
||||
<page string="物业列表">
|
||||
<button name="choose_property_button" string="批量增加物业" type="object" class="btn-primary"/>
|
||||
<field name="lease_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<tree editable="bottom" create="false" edit="false" delete="false">
|
||||
<field name="lease_id" column_invisible="1"/>
|
||||
<field name="address_id"/>
|
||||
<field name="admin_line_id"/>
|
||||
@@ -481,36 +480,36 @@
|
||||
<page string="附件">
|
||||
<group col="2">
|
||||
<group>
|
||||
<field name="license_id" widget="preview_many2one"/>
|
||||
<field name="legal_entity_id" widget="preview_many2one"/>
|
||||
<field name="handover_time" widget="preview_many2one"/>
|
||||
<field name="lease_contract" widget="preview_many2one"/>
|
||||
<field name="license_id" widget="preview_many2one" readonly="1"/>
|
||||
<field name="legal_entity_id" widget="preview_many2one" readonly="1"/>
|
||||
<field name="handover_time" widget="preview_many2one" readonly="1"/>
|
||||
<field name="lease_contract" widget="preview_many2one" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="power_attorney_id" widget="preview_many2one"/>
|
||||
<field name="asset_valuation_id" widget="preview_many2one"/>
|
||||
<field name="confirmation_transaction_id" widget="preview_many2one"/>
|
||||
<field name="other_id" widget="preview_many2one"/>
|
||||
<field name="power_attorney_id" widget="preview_many2one" readonly="1"/>
|
||||
<field name="asset_valuation_id" widget="preview_many2one" readonly="1"/>
|
||||
<field name="confirmation_transaction_id" widget="preview_many2one" readonly="1"/>
|
||||
<field name="other_id" widget="preview_many2one" readonly="1"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="承租方个人信息">
|
||||
<group col="2">
|
||||
<group>
|
||||
<field name="invoicing_type"/>
|
||||
<field name="invoicing_begins"/>
|
||||
<field name="tax_number"/>
|
||||
<field name="industry_id"/>
|
||||
<field name="invoicing_type" readonly="1"/>
|
||||
<field name="invoicing_begins" readonly="1"/>
|
||||
<field name="tax_number" readonly="1"/>
|
||||
<field name="industry_id" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="contact"/>
|
||||
<field name="phone"/>
|
||||
<field name="email"/>
|
||||
<field name="contact" readonly="1"/>
|
||||
<field name="phone" readonly="1"/>
|
||||
<field name="email" readonly="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="lease_bank_ids" string="银行账户信息">
|
||||
<tree editable="bottom" create="false" delete="false">
|
||||
<tree editable="bottom" create="false" edit="false" delete="false">
|
||||
<field name="name"/>
|
||||
<field name="user"/>
|
||||
<field name="bank"/>
|
||||
@@ -520,7 +519,7 @@
|
||||
</page>
|
||||
<page string="子合同" invisible="not is_contract">
|
||||
<field name="subset_ids">
|
||||
<tree editable="bottom">
|
||||
<tree editable="bottom" create="false" edit="false" delete="false">
|
||||
<field name="subset_id" column_invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="contract_id"/>
|
||||
@@ -539,18 +538,18 @@
|
||||
</group>
|
||||
<group col="2" string="租赁期限">
|
||||
<group>
|
||||
<label for="lease_term_year"/>
|
||||
<label for="lease_term_year" />
|
||||
<div class="d-inline-flex w-100">
|
||||
<field name="lease_term_year"/>
|
||||
<field name="lease_term_year" readonly="1"/>
|
||||
年
|
||||
<field name="lease_term_month"/>
|
||||
<field name="lease_term_month" readonly="1"/>
|
||||
月
|
||||
<field name="lease_term_day"/>
|
||||
<field name="lease_term_day" readonly="1"/>
|
||||
日
|
||||
</div>
|
||||
<label for="term_start_time"/>
|
||||
<div class="d-inline-flex w-100">
|
||||
<field name="term_start_time" class="me-2" style="max-width: 11rem !important;"/>结束时间
|
||||
<field name="term_start_time" class="me-2" style="max-width: 11rem !important;" readonly="1"/>结束时间
|
||||
<field name="term_end_time" class="me-2" style="max-width: 11rem !important;" readonly="1" force_save="1"/>
|
||||
</div>
|
||||
<field name="actual_start_time" invisible="1"/>
|
||||
@@ -558,27 +557,27 @@
|
||||
<label for="cycle_mode"/>
|
||||
<div class="d-inline-flex w-100">
|
||||
<field name="cycle_mode" class="me-2"
|
||||
style="max-width: 11rem !important;"/>付款方式
|
||||
style="max-width: 11rem !important;" readonly="1"/>付款方式
|
||||
<field name="cycle_dict" class="me-2"
|
||||
style="max-width: 11rem !important;"/>
|
||||
style="max-width: 11rem !important;" readonly="1"/>
|
||||
</div>
|
||||
<field name="total_area"/>
|
||||
<field name="rent" string="月租金" invisible="cycle_dict != 'monthly'"/>
|
||||
<field name="rent" string="季租金" invisible="cycle_dict != 'quarter'"/>
|
||||
<field name="rent" string="半年租金" invisible="cycle_dict != 'half'"/>
|
||||
<field name="rent" string="年租金" invisible="cycle_dict != 'year'"/>
|
||||
<field name="total_area" readonly="1"/>
|
||||
<field name="rent" string="月租金" invisible="cycle_dict != 'monthly'" readonly="1"/>
|
||||
<field name="rent" string="季租金" invisible="cycle_dict != 'quarter'" readonly="1"/>
|
||||
<field name="rent" string="半年租金" invisible="cycle_dict != 'half'" readonly="1"/>
|
||||
<field name="rent" string="年租金" invisible="cycle_dict != 'year'" readonly="1"/>
|
||||
<field name="unit_price" readonly="1" force_save="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="first_pay"/>
|
||||
<field name="first_pay" readonly="1"/>
|
||||
<label for="date_payment_month"/>
|
||||
<div class="d-inline-flex w-100">
|
||||
<field name="date_payment_month"/>
|
||||
<field name="date_payment_month" readonly="1"/>
|
||||
月
|
||||
<field name="date_payment_day"/>
|
||||
<field name="date_payment_day" readonly="1"/>
|
||||
日
|
||||
</div>
|
||||
<field name="expected_reminders"/>
|
||||
<field name="expected_reminders" readonly="1"/>
|
||||
<field name="is_less_than_2" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
@@ -586,9 +585,9 @@
|
||||
<group>
|
||||
<label for="rent_free_period_month" invisible="is_less_than_2"/>
|
||||
<div class="d-inline-flex w-100" invisible="is_less_than_2">
|
||||
<field name="rent_free_period_month" required="1" class="me-2"/>
|
||||
<field name="rent_free_period_month" required="1" class="me-2" readonly="1"/>
|
||||
月
|
||||
<field name="rent_free_period_days" required="1" class="me-2"/>
|
||||
<field name="rent_free_period_days" required="1" class="me-2" readonly="1"/>
|
||||
日
|
||||
</div>
|
||||
<field name="admin_id" invisible="1"/>
|
||||
@@ -596,35 +595,35 @@
|
||||
<field name="is_electricity" invisible="1"/>
|
||||
<field name="is_mange" invisible="1"/>
|
||||
<field name="performance_bonds_write" invisible="1"/>
|
||||
<field name="total_contract_receivables"/>
|
||||
<field name="total_contract_receivables" readonly="1"/>
|
||||
<label for="first_years_begin" invisible="is_less_than_2"/>
|
||||
<div class="d-inline-flex w-100" invisible="is_less_than_2">
|
||||
<field name="first_years_begin" string="自第" class="me-2"
|
||||
style="max-width: 3rem !important;"/>年开始,每
|
||||
style="max-width: 3rem !important;" readonly="1"/>年开始,每
|
||||
<field name="increments_every_few_years" class="me-2"
|
||||
style="max-width: 3rem !important;"/>年递增
|
||||
style="max-width: 3rem !important;" readonly="1"/>年递增
|
||||
<field name="increment_method" required="1" class="me-2"
|
||||
style="max-width: 5rem !important;"/>
|
||||
style="max-width: 5rem !important;" readonly="1"/>
|
||||
<field name="increment_value"
|
||||
class="me-2" style="max-width: 5rem !important;"/>
|
||||
class="me-2" style="max-width: 5rem !important;" readonly="1"/>
|
||||
</div>
|
||||
<label for="deposit_type"/>
|
||||
<div class="d-inline-flex w-100">
|
||||
<field name="deposit_type" string="押金/履约保证金" class="me-2"
|
||||
style="max-width: 11rem !important;"/>金额
|
||||
style="max-width: 11rem !important;" readonly="1"/>金额
|
||||
<field name="deposit" class="me-2"
|
||||
style="max-width: 11rem !important;"/>
|
||||
style="max-width: 11rem !important;" readonly="1"/>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<label for="breach"/>
|
||||
<div class="d-inline-flex w-100">
|
||||
<field name="breach" string="违约金时点" class="me-2"
|
||||
style="max-width: 11rem !important;"/>违约金比例
|
||||
style="max-width: 11rem !important;" readonly="1"/>违约金比例
|
||||
<field name="percentage_liquidated_damages" class="me-2"
|
||||
style="max-width: 11rem !important;"/>
|
||||
style="max-width: 11rem !important;" readonly="1"/>
|
||||
</div>
|
||||
<field name="tax_rate"/>
|
||||
<field name="tax_rate" readonly="1"/>
|
||||
<field name="not_received" invisible="1"/>
|
||||
<field name="actual_receivable" invisible="1"/>
|
||||
<field name="now_receivable" invisible="1"/>
|
||||
@@ -633,22 +632,22 @@
|
||||
</group>
|
||||
<group col="3">
|
||||
<group>
|
||||
<field name="performance_bonds"/>
|
||||
<field name="performance_bonds" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="utility_bills"/>
|
||||
<field name="utility_bills" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="renovation_deposit"/>
|
||||
<field name="renovation_deposit" readonly="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="miscellaneous"/>
|
||||
<field name="miscellaneous" readonly="1"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="租金明细">
|
||||
<field name="breakdown_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<tree editable="bottom" edit="false" delete="false" create="false">
|
||||
<field name="breakdown_id" column_invisible="1"/>
|
||||
<field name="unit_price"/>
|
||||
<field name="monthly_amount"/>
|
||||
@@ -661,7 +660,7 @@
|
||||
</page>
|
||||
<page string="其他费用">
|
||||
<field name="other_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<tree editable="bottom" edit="false" delete="false" create="false">
|
||||
<field name="other_id" column_invisible="1"/>
|
||||
<field name="charges"/>
|
||||
<field name="coping"/>
|
||||
@@ -671,7 +670,7 @@
|
||||
</page>
|
||||
<page string="银行流水">
|
||||
<field name="bank_statements_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<tree editable="bottom" edit="false" delete="false" create="false">
|
||||
<field name="start_time"/>
|
||||
<field name="company_id"/>
|
||||
<field name="name"/>
|
||||
@@ -687,7 +686,7 @@
|
||||
</page>
|
||||
<page string="水费" invisible="not is_water">
|
||||
<field name="water_fee_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<tree editable="bottom" edit="false" delete="false" create="false">
|
||||
<field name="contract_id" column_invisible="1"/>
|
||||
<field name="charges"/>
|
||||
<field name="fees_id"/>
|
||||
@@ -697,7 +696,7 @@
|
||||
</page>
|
||||
<page string="电费" invisible="not is_electricity">
|
||||
<field name="electricity_fee_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<tree editable="bottom" edit="false" delete="false" create="false">
|
||||
<field name="contract_id" column_invisible="1"/>
|
||||
<field name="charges"/>
|
||||
<field name="fees_id"/>
|
||||
@@ -707,7 +706,7 @@
|
||||
</page>
|
||||
<page string="管理费" invisible="not is_mange">
|
||||
<field name="mange_fee_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<tree editable="bottom" edit="false" delete="false" create="false">
|
||||
<field name="contract_id" column_invisible="1"/>
|
||||
<field name="charges"/>
|
||||
<field name="fees_id"/>
|
||||
@@ -724,10 +723,10 @@
|
||||
<field name="not_tax_amount" readonly="1" force_save="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="first_year_rent" force_save="1"/>
|
||||
<field name="first_year_rent" force_save="1" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="total_contract_receivables" style="font-size: 1.2rem; font-weight: bold;"/>
|
||||
<field name="total_contract_receivables" style="font-size: 1.2rem; font-weight: bold;" readonly="1"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
|
||||
Reference in New Issue
Block a user