Merge branch 'dev' into dev_zhou
# Conflicts: # yuthon_property_approval/views/property_lease_contract.xml
This commit is contained in:
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
Reference in New Issue
Block a user