Merge branch 'dev' into dev_zhou

# Conflicts:
#	yuthon_property_approval/views/property_lease_contract.xml
This commit is contained in:
zhou
2025-01-06 11:21:58 +08:00
12 changed files with 359 additions and 234 deletions
+6 -1
View File
@@ -16,7 +16,7 @@ class SoongWorkflowLog(models.Model):
"unique(model, res_id, node_btn_id)",
_("Workflow log must be unique."),), ]
name = fields.Char(string="节点名称", compute="_compute_name")
name = fields.Char(string="节点名称", compute="_compute_name", store=True)
model = fields.Char(string="Related Document Model", index=True, required=True)
res_id = fields.Integer(string="Related Document ID", index=True, required=True)
@@ -30,6 +30,11 @@ class SoongWorkflowLog(models.Model):
done_by = fields.Many2one(comodel_name="res.users", string="审批人")
lase_click_date = fields.Datetime(string="操作时间")
approval_state = fields.Selection([
('0', '未审批'),
('1', '审批中'),
('2', '审批通过'),
], string='审批状态', default='0')
comment = fields.Char(string="意见")
@api.depends("workflow_id", "node_id", "node_btn_id")
@@ -155,7 +155,7 @@ class SoongWorkflowMixin(models.AbstractModel):
("res_id", "=", self.id),
("node_id", "=", btn_rec.node_id.id),
("workflow_id", "=", btn_rec.workflow_id.id),
("node_btn_id", "=", btn_rec.id),
# ("node_btn_id", "=", btn_rec.id),
]
)
if not record_obj:
@@ -165,12 +165,12 @@ class SoongWorkflowMixin(models.AbstractModel):
"res_id": self.id,
"node_id": btn_rec.node_id.id,
"workflow_id": btn_rec.workflow_id.id,
"node_btn_id": btn_rec.id,
# "node_btn_id": btn_rec.id,
"done_by": self.env.uid,
"lase_click_date": fields.Datetime.now(),
}
)
record_obj.update({"done_by": self.env.uid, "lase_click_date": fields.Datetime.now()})
record_obj.update({"node_btn_id": btn_rec.id, "done_by": self.env.uid, "approval_state": "2", "lase_click_date": fields.Datetime.now()})
return record_obj
def btn_exec_action(self):
@@ -647,6 +647,7 @@ class SoongWorkflowMixin(models.AbstractModel):
state_el = etree.Element("field")
state_el.set("name", "state")
state_el.set("widget", "statusbar")
state_el.set("invisible", "1")
# Loop all nodes
for node in wkf_rec.node_ids:
# Read Visible States
@@ -9,6 +9,7 @@
<field name="done_by" />
<field name="lase_click_date" />
<field name="comment" />
<field name="approval_state" />
</tree>
</field>
</template>
@@ -145,6 +145,31 @@ class SoongWorkflowCommentWizard(models.TransientModel):
fields.Datetime.now() + timedelta(
hours=8)),
url=url, btntxt="查看详情")
# 转交创建记录
log_obj = self.env["soong.workflow.log"]
next_node_id = record_id.workflow_id.node_ids.search(
[('name', '=', self.trans_link_id.name), ('workflow_id', '=', record_id.workflow_id.id)])
record_obj = log_obj.search(
[
("model", "=", self.res_model),
("res_id", "=", self.res_id),
("node_id", "=", next_node_id.id),
("workflow_id", "=", record_id.workflow_id.id),
# ("node_btn_id", "=", record_id.node_btn_id.id),
]
)
if not record_obj:
record_obj = log_obj.create(
{
"model": self.res_model,
"res_id": self.res_id,
"node_id": next_node_id.id,
"workflow_id": self.node_btn_id.workflow_id.id,
# "node_btn_id": self.node_btn_id.id,
# "lase_click_date": fields.Datetime.now(),
}
)
record_obj.update({"approval_state": "1"})
# partner_ids = self.employee_ids.user_id.partner_id.ids
# self.with_context(lang=self.env.lang)._message_auto_subscribe_notify(partner_ids, 'soong_workflow.message_soong_workflow_distribute')
return self.node_btn_id.with_context(cx).run()
@@ -9,7 +9,7 @@
<field name="arch" type="xml">
<form string="意见">
<group invisible="node_btn_name == '分发'">
<field name="comment_note_id"/>
<field name="comment_note_id" require="1"/>
<field name="node_btn_id" invisible="1"/>
<field name="node_btn_name" invisible="1"/>
<field name="node_link_len" invisible="1"/>
@@ -22,7 +22,7 @@
<field name="employee_ids" widget="many2many_tags" string="人员范围"/>
</group>
<group string="流程选择" invisible="node_btn_name != '分发'">
<field name="comment_note_id"/>
<field name="comment_note_id" require="1"/>
<field name="employee_ids" widget="many2many_tags" string="董事长"/>
<field name="circulated_employee_ids" widget="many2many_tags"/>
<field name="supervising_employee_ids" widget="many2many_tags"/>
+1 -1
View File
@@ -22,7 +22,7 @@ class CustomerPortal(portal.CustomerPortal):
'report_type': 'html',
'res_company': attendance_sudo.employee_id.user_id.company_id,
}
return request.render('hr_attendance_ext.attendance_month_portal_template', values)
return request.render('yuthon_hr_attendance.attendance_month_portal_template', values)
@http.route(['/my/attendance/month/detail/<int:attendance_id>/accept'], type='json', auth="public", website=True)
def portal_attendance_month_detail_quote_accept(self, attendance_id, access_token=None, name=None, signature=None):
@@ -91,18 +91,23 @@ class HrAttendanceMonthDetail(models.Model):
('11', '11月份'),
('12', '12月份')
], string="考勤月份")
# todo 需要什么字段往上加什么
required_attendance_days = fields.Float(string="应出勤天数")
actual_attendance_days = fields.Float(string="实际出勤天数")
compensatory_leave = fields.Float(string="调休(小时)")
leave_of_absence = fields.Float(string="事假(小时)")
leave_of_sick = fields.Float(string="病假(天)")
come_late = fields.Float(string="迟到(次)")
work_overtime = fields.Float(string="加班(小时)")
statutory_leave = fields.Float(string="法定假(天)")
work_overtime = fields.Float(string="加班(小时)")
# todo 需要什么字段往上加什么
# 打卡
come_late = fields.Float(string="迟到(次)")
is_early_card = fields.Float(string="早退(次)")
is_no_card = fields.Float(string="缺卡(次)")
# 假期
unpaid_leave = fields.Float(string="无薪假(小时)")
note = fields.Char(string='备注')
hr_attendance_month_id = fields.Many2one('hr.attendance.month', string="出勤月度汇总", ondelete="cascade", readonly=True)
company_id = fields.Many2one(related="hr_attendance_month_id.company_id")
signature = fields.Image(string="签名", copy=False, attachment=True, max_width=1024, max_height=1024)
@@ -131,7 +136,8 @@ class HrAttendanceMonthDetail(models.Model):
url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
attendance_url = "{0}/my/attendance/month/detail/{1}".format(str(url), str(record.id))
message = '您的{0}年{1}月的考勤已生成 \n <a href=\"{2}\"> 点击查看 </a>'.format(str(record.current_year), str(record.current_month), str(attendance_url))
self.env['wx.work.api'].sudo().send_text_message(user_id, message)
# self.env['wx.work.api'].sudo().send_text_message(user_id, message)
self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=user_id, message=message)
def _compute_access_url(self):
super()._compute_access_url()
@@ -220,19 +226,24 @@ class HrAttendanceMonthDetail(models.Model):
"""
self.ensure_one()
days = calendar.monthrange(int(self.current_year), int(self.current_month))[1]
come_late = 0
is_late_card = 0
is_early_card = 0
is_no_card = 0
for n in range(days):
# 根据出勤时间判断是否打卡
current_date = datetime.date(int(self.current_year), int(self.current_month), n + 1)
attendance_obj = self.env["hr.attendance"].sudo().search([('employee_id', '=', employee.id), ("current_data", '=', current_date)])
is_come_late = False
for obj in attendance_obj:
if obj.is_come_late():
# 当天有打卡记录说明已经出勤
is_come_late = True
if is_come_late is True:
come_late += 1
return come_late
# 迟到
if obj.is_late_card:
is_late_card += 1
# 早退
if obj.is_early_card:
is_early_card += 1
# 缺卡
if obj.is_no_card:
is_no_card += 1
return is_late_card, is_early_card, is_no_card
def _hr_attendance_month_detail_action(self):
"""
@@ -294,7 +305,7 @@ class HrAttendanceMonthDetail(models.Model):
('date_to', '>=', date_start)
]
if type_list:
domain.append(('holiday_status_id.holiday_type', 'in', type_list))
domain.append(('holiday_status_id.name', 'in', type_list))
hr_leaves = self.env['hr.leave'].sudo().search(domain)
hours = 0.0
days = 0.0
@@ -316,41 +327,21 @@ class HrAttendanceMonthDetail(models.Model):
# 排班的进行统计
if self.employee_id.default_planning_role_id:
# todo 需要什么字段往上加什么
# # 应出勤天数
# required_attendance_days = self._get_planning_required_attendance_days(self.employee_id)
# self.required_attendance_days = required_attendance_days
# # 实际出勤天数
# actual_attendance_days = self._get_actual_attendance_days(self.employee_id)
# self.actual_attendance_days = actual_attendance_days
# 迟到(次):上班时间 < 上班打卡时间
come_late = self._get_come_late(self.employee_id)
self.come_late = come_late
# 迟到, 早退, 缺卡
self.come_late, self.is_early_card, self.is_no_card = self._get_come_late(self.employee_id)
# 无薪假:hr.leave表
days, hours = self._get_hr_leave_type(self.employee_id, ['无薪假'])
self.unpaid_leave = hours
# 行政的进行统计
if not self.employee_id.default_planning_role_id:
# todo 需要什么字段往上加什么
# # 应出勤天数
# required_attendance_days = self._get_required_attendance_days(self.employee_id)
# self.required_attendance_days = required_attendance_days
# # 实际出勤天数
# actual_attendance_days = self._get_actual_attendance_days(self.employee_id)
# self.actual_attendance_days = actual_attendance_days
# # 调休(小时):取员工表上字段
# work_overtime, compensatory_leave = self._get_overtime_annual_summary(self.employee_id)
# self.compensatory_leave = compensatory_leave
# # 事假(小时):hr.leave表
# days, hours = self._get_hr_leave_type(self.employee_id, ['personal'])
# self.leave_of_absence = hours + days * 8
# # 病假(天):hr.leave表
# days, hours = self._get_hr_leave_type(self.employee_id, ['sick'])
# self.leave_of_sick = hours // 8 + days
# 迟到(次):上班时间 < 上班打卡时间
come_late = self._get_come_late(self.employee_id)
self.come_late = come_late
# # 加班(小时):取员工表上字段
# self.work_overtime = work_overtime
# 法定假(天):hr.leave表
# days, hours = self._get_hr_leave_type(self.employee_id, ['marriage', 'maternity', 'paternity', 'funeral', 'parental'])
# self.statutory_leave = hours // 8 + days
# 迟到, 早退, 缺卡
self.come_late, self.is_early_card, self.is_no_card = self._get_come_late(self.employee_id)
# 无薪假:hr.leave表
days, hours = self._get_hr_leave_type(self.employee_id, ['无薪假'])
self.unpaid_leave = hours
return True
def update_attendance_month(self):
@@ -67,20 +67,17 @@
<field name="current_year" />
<field name="current_month" />
<field name="signature" widget="image" options='{"size": [80, 40]}' />
<!-- todo 需要什么字段往上加什么-->
<!-- <field name="required_attendance_days"/>-->
<!-- <field name="actual_attendance_days"/>-->
<!-- <field name="compensatory_leave"/>-->
<field name="leave_of_absence"/>
<field name="leave_of_sick"/>
<!-- todo 需要什么字段往上加什么-->
<!-- 打卡-->
<field name="come_late"/>
<field name="work_overtime"/>
<field name="statutory_leave"/>
<field name="is_early_card" />
<field name="is_no_card" />
<!-- 请假-->
<field name="unpaid_leave" />
<!-- 其他-->
<field name="note" optional="hide"/>
<!-- <field name="company_area" optional="hide"/>-->
<field name="company_id" optional="hide"/>
<field name="state" widget="badge" decoration-info="state == 'unconfirmed'" decoration-success="state == 'confirmed'"/>
<!-- <button name="action_show_details" string="打卡图片" type="object" title="Show Details" icon="fa-list"/>-->
</tree>
</field>
</record>
@@ -15,29 +15,17 @@
<t t-set="entries">
<ul class="list-group list-group-flush flex-wrap flex-row flex-lg-column">
<!-- todo 需要什么字段往上加什么-->
<li class="list-group-item d-grid align-content-start">
<strong>应出勤天数:<span t-field="attendance_month.required_attendance_days"/>天</strong>
</li>
<li class="list-group-item d-grid align-content-start">
<strong>实际出勤天数:<span t-field="attendance_month.actual_attendance_days"/>天</strong>
</li>
<li class="list-group-item d-grid align-content-start">
<strong>调休(小时):<span t-field="attendance_month.compensatory_leave"/>小时</strong>
</li>
<li class="list-group-item d-grid align-content-start">
<strong>事假(小时):<span t-field="attendance_month.leave_of_absence"/>小时</strong>
</li>
<li class="list-group-item d-grid align-content-start">
<strong>病假(天):<span t-field="attendance_month.leave_of_sick"/>天</strong>
</li>
<li class="list-group-item d-grid align-content-start">
<strong>迟到(次):<span t-field="attendance_month.come_late"/>次</strong>
</li>
<li class="list-group-item d-grid align-content-start">
<strong>加班(小时):<span t-field="attendance_month.work_overtime"/>小时</strong>
<strong>早退(次):<span t-field="attendance_month.is_early_card"/>次</strong>
</li>
<li class="list-group-item d-grid align-content-start">
<strong>法定假(天):<span t-field="attendance_month.statutory_leave"/>天</strong>
<strong>缺卡(次):<span t-field="attendance_month.is_no_card"/>次</strong>
</li>
<li class="list-group-item d-grid align-content-start">
<strong>无薪假(小时):<span t-field="attendance_month.unpaid_leave"/>小时</strong>
</li>
</ul>
<ul class="list-group list-group-flush flex-wrap flex-row flex-lg-column" />
@@ -13,7 +13,7 @@ class PropertyTenantInformation(models.Model):
phone = fields.Char(string='联系电话')
home_phone = fields.Char(string='座机')
email = fields.Char(string='电子邮箱')
address = fields.Text(string='送达地址')
address = fields.Char(string='送达地址')
scope_business = fields.Char(string='经营范围')
invoicing_type = fields.Selection([('spot', '专票'), ('cape', '普票')], string="开票类型")
rental_purposes = fields.Many2one('yuthon.rental.purpose', string="出租用途")
@@ -49,7 +49,7 @@ class PropertyLeaseContract(models.Model):
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(string="送达地址")
address_for_delivery = fields.Char(string="送达地址")
lease_term = fields.Float(string="租期")
lease_term_year = fields.Integer(string="租期(年)")
@@ -86,7 +86,7 @@ class PropertyLeaseContract(models.Model):
rent = fields.Float(string="租金", help='第一笔合同的应收')
total_contract_receivables = fields.Float(string="合同总应收")
tax_rate = fields.Many2one('yuthon.tariff.setting', string="税率")
use_address = fields.Char(string="使用地址")
use_address = fields.Char(string="财务专用地址")
not_tax_amount = fields.Float(string="不含税价")
tax = fields.Float(string="税金")
is_water = fields.Boolean(string="是否有水费")
@@ -28,6 +28,7 @@
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">
@@ -42,28 +43,28 @@
</group>
<group col="3" string="基本信息">
<group>
<field name="contract_code" required="1"/>
<field name="contract_code"/>
</group>
<group>
<field name="contract_date" required="1"/>
<field name="contract_date"/>
</group>
<group>
<field name="contract_type" required="1"/>
<field name="contract_type"/>
</group>
</group>
<group>
<field name="rent_company" string="出租方"/>
<field name="company_id" invisible="1" required="1"/>
<field name="lessee_id" required="1"/>
<field name="company_id" invisible="1"/>
<field name="lessee_id"/>
<field name="users_id" readonly="1" invisible="1"/>
<field name="department_id" invisible="1"/>
<field name="name" required="1"/>
<field name="name"/>
<field name="use_address"/>
<field name="condition" readonly="1"/>
</group>
<notebook>
<page string="物业列表">
<field name="lease_ids" string=" " required="1">
<field name="lease_ids" string=" " required="condition != 'new'">
<tree editable="bottom">
<field name="lease_id" column_invisible="1"/>
<field name="address_id"/>
@@ -75,7 +76,7 @@
<page string="租金明细">
<button name="action_generate_details" class="oe_link btn btn-primary" type="object"
string="生成明细"/>
<field name="breakdown_ids" string=" " >
<field name="breakdown_ids" string=" ">
<tree editable="bottom">
<field name="breakdown_id" column_invisible="1"/>
<field name="charges"/>
@@ -98,6 +99,36 @@
</tree>
</field>
</page>
<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>
<page string="附件">
<group col="2">
<group>
@@ -117,16 +148,15 @@
</notebook>
<group col="2" string="承租方个人信息">
<group>
<field name="invoicing_type" required="1"/>
<field name="invoicing_begins" required="1"/>
<field name="tax_number" required="1"/>
<field name="industry" required="1"/>
<field name="invoicing_type"/>
<field name="invoicing_begins"/>
<field name="tax_number"/>
<field name="industry"/>
</group>
<group>
<field name="contact" required="1"/>
<field name="phone" required="1"/>
<field name="email" required="1"/>
<field name="tax_number" required="1"/>
<field name="contact"/>
<field name="phone"/>
<field name="email"/>
</group>
</group>
<group>
@@ -140,32 +170,32 @@
<group>
<label for="lease_term_year"/>
<div class="d-inline-flex w-100">
<field name="lease_term_year" required="1"/>
<field name="lease_term_year"/>
年
<field name="lease_term_month" required="1"/>
<field name="lease_term_month"/>
月
</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"/>
<field name="term_start_time"/>
<field name="term_end_time"/>
<field name="cycle_mode"/>
<field name="cycle_dict"/>
<field name="address_for_delivery"/>
</group>
<group>
<field name="first_pay" required="1"/>
<field name="date_payment_date" required="1"/>
<field name="first_pay"/>
<field name="date_payment_date"/>
<field name="total_area"/>
<field name="expected_reminders" required="1"/>
<field name="rental_purposes" required="1"/>
<field name="expected_reminders"/>
<field name="rental_purposes"/>
</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_month" required="condition == 'new'" class="me-2"/>
月
<field name="rent_free_period_days" required="1" class="me-2"/>
<field name="rent_free_period_days" required="condition == 'new'" class="me-2"/>
日
</div>
<field name="tax_rate" required="1"/>
@@ -187,6 +217,31 @@
<field name="unit_price" required="1"/>
<field name="breach" required="1"/>
<field name="percentage_liquidated_damages" required="1"/>
<label for="rent"/>
<div class="d-inline-flex w-100">
<field name="rent" string="月租金" invisible="cycle_dict != 'monthly'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="rent" string="季租金" invisible="cycle_dict != 'quarter'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="rent" string="半年租金" invisible="cycle_dict != 'half'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="rent" string="年租金" invisible="cycle_dict != 'year'" class="me-2"
style="max-width: 11rem !important;"/>单价
<field name="unit_price" required="condition == 'new'"
style="max-width: 11rem !important;" class="me-2"/>
</div>
<label for="breach"/>
<div class="d-inline-flex w-100">
<field name="breach" string="自第" class="me-2"
style="max-width: 11rem !important;"/>违约金比例
<field name="percentage_liquidated_damages" class="me-2"
style="max-width: 11rem !important;"/>
</div>
<field name="tax_rate"/>
<field name="first_year_rent"/>
<field name="total_contract_receivables"/>
<field name="tax" readonly="1"/>
<field name="not_tax_amount" readonly="1"/>
</group>
</group>
<group>
@@ -291,28 +346,29 @@
</group>
<group col="3" string="基本信息">
<group>
<field name="contract_code" required="1"/>
<field name="contract_code"/>
</group>
<group>
<field name="contract_date" required="1"/>
<field name="contract_date"/>
</group>
<group>
<field name="contract_type" required="1"/>
<field name="contract_type"/>
</group>
</group>
<group>
<field name="rent_company" string="出租方"/>
<field name="company_id" invisible="1" required="1"/>
<field name="lessee_id" required="1"/>
<field name="condition" readonly="1" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="lessee_id"/>
<field name="users_id" readonly="1" invisible="1"/>
<field name="department_id" invisible="1"/>
<field name="name" required="1"/>
<field name="name"/>
<field name="use_address"/>
<field name="message_type" readonly="1"/>
</group>
<notebook>
<page string="物业列表">
<field name="lease_ids" string=" " required="1">
<field name="lease_ids" string=" " required="condition != 'new'">
<tree editable="bottom">
<field name="lease_id" column_invisible="1"/>
<field name="address_id"/>
@@ -324,7 +380,7 @@
<page string="租金明细">
<button name="action_generate_details" class="oe_link btn btn-primary" type="object"
string="生成明细"/>
<field name="breakdown_ids" string=" " >
<field name="breakdown_ids" string=" ">
<tree editable="bottom">
<field name="breakdown_id" column_invisible="1"/>
<field name="charges"/>
@@ -347,118 +403,6 @@
</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="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"/>
<field name="first_year_rent" required="1"/>
<field name="total_contract_receivables" required="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"/>
</group>
</group>
<group>
<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;"/>年递增
<field name="increment_method" required="1" class="me-2" style="max-width: 11rem !important;"/>递增数额
<field name="increment_percentage" invisible="increment_method != 'percentage'" class="me-2" style="max-width: 11rem !important;"/>
<field name="increment_price" invisible="increment_method != 'increment_price'" class="me-2" style="max-width: 11rem !important;"/>
<field name="increment_amount" invisible="increment_method != 'increment_amount'" class="me-2" style="max-width: 11rem !important;"/>
</div>
</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">
@@ -497,7 +441,180 @@
</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="invoicing_type"/>
<field name="invoicing_begins"/>
<field name="tax_number"/>
<field name="industry"/>
</group>
<group>
<field name="contact"/>
<field name="phone"/>
<field name="email"/>
</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"/>
年
<field name="lease_term_month"/>
月
</div>
<field name="term_start_time"/>
<field name="term_end_time"/>
<field name="cycle_mode"/>
<field name="cycle_dict"/>
<field name="address_for_delivery"/>
</group>
<group>
<field name="first_pay"/>
<field name="date_payment_date"/>
<field name="total_area"/>
<field name="expected_reminders"/>
<field name="rental_purposes"/>
</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="condition == 'new'" class="me-2"/>
月
<field name="rent_free_period_days" required="condition == 'new'" class="me-2"/>
日
</div>
<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>
<label for="increment_method"/>
<div class="d-inline-flex w-100">
<field name="increment_method" required="condition == 'new'" class="me-2"
style="max-width: 11rem !important;"/>递增数额
<field name="increment_percentage" invisible="increment_method != 'percentage'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="increment_price" invisible="increment_method != 'increment_price'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="increment_amount" invisible="increment_method != 'increment_amount'" class="me-2"
style="max-width: 11rem !important;"/>
</div>
<field name="tax_rate" required="1"/>
<field name="tax" readonly="1"/>
<field name="not_tax_amount" readonly="1"/>
<!-- <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"/>
<div class="d-inline-flex w-100">
<field name="deposit_type" required="condition == 'new'" class="me-2"
style="max-width: 11rem !important;"/>
金额
<field name="deposit" readonly="0" class="me-2"
style="max-width: 11rem !important;"/>
</div>
<field name="first_year_rent" required="1"/>
<field name="total_contract_receivables" required="1"/>
</group>
<group>
<label for="rent"/>
<div class="d-inline-flex w-100">
<field name="rent" string="月租金" invisible="cycle_dict != 'monthly'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="rent" string="季租金" invisible="cycle_dict != 'quarter'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="rent" string="半年租金" invisible="cycle_dict != 'half'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="rent" string="年租金" invisible="cycle_dict != 'year'" class="me-2"
style="max-width: 11rem !important;"/>单价
<field name="unit_price" required="condition == 'new'"
style="max-width: 11rem !important;" class="me-2"/>
</div>
</group>
</group>
<group>
<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;"/>年递增
<field name="increment_method" required="1" class="me-2" style="max-width: 11rem !important;"/>递增数额
<field name="increment_percentage" invisible="increment_method != 'percentage'" class="me-2" style="max-width: 11rem !important;"/>
<field name="increment_price" invisible="increment_method != 'increment_price'" class="me-2" style="max-width: 11rem !important;"/>
<field name="increment_amount" invisible="increment_method != 'increment_amount'" class="me-2" style="max-width: 11rem !important;"/>
</div>
</group>
<group>
<group>
<field name="deposit_type" required="1"/>
<label for="deposit_type"/>
<div class="d-inline-flex w-100">
<field name="deposit_type" required="condition == 'new'" class="me-2"
style="max-width: 11rem !important;"/>
金额
<field name="deposit" readonly="0" class="me-2"
style="max-width: 11rem !important;"/>
</div>
</group>
<group>
<label for="rent"/>
<div class="d-inline-flex w-100">
<field name="rent" string="月租金" invisible="cycle_dict != 'monthly'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="rent" string="季租金" invisible="cycle_dict != 'quarter'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="rent" string="半年租金" invisible="cycle_dict != 'half'" class="me-2"
style="max-width: 11rem !important;"/>
<field name="rent" string="年租金" invisible="cycle_dict != 'year'" class="me-2"
style="max-width: 11rem !important;"/>单价
<field name="unit_price" required="condition == 'new'"
style="max-width: 11rem !important;" class="me-2"/>
</div>
<label for="breach"/>
<div class="d-inline-flex w-100">
<field name="breach" string="自第" class="me-2"
style="max-width: 11rem !important;"/>违约金比例
<field name="percentage_liquidated_damages" class="me-2"
style="max-width: 11rem !important;"/>
</div>
<field name="tax_rate"/>
<field name="first_year_rent"/>
<field name="total_contract_receivables"/>
<field name="tax" readonly="1"/>
<field name="not_tax_amount" readonly="1"/>
</group>
</group>
<group>
<field name="miscellaneous"/>
</group>
@@ -524,7 +641,7 @@
<field name="name">合同审批</field>
<field name="res_model">property.lease.contract</field>
<field name="view_mode">tree,form,search</field>
<field name="domain">[('condition','=','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')})]"/>
@@ -612,7 +729,7 @@
<field name="state">code</field>
<field name="code">action = model.action_use_address()</field>
</record>
<record id="all_data_action_use_admin" model="ir.actions.server">
<record id="all_data_action_use_admin" 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"/>