添加功能
This commit is contained in:
@@ -42,6 +42,7 @@ class FinancialSheetLine(models.Model):
|
||||
_name = 'financial.sheet.line'
|
||||
_description = '财务数据表行'
|
||||
|
||||
employee_ids = fields.Many2many('hr.employee', string='人员')
|
||||
sheet_id = fields.Many2one('financial.sheet.collection', string='关联财务数据表')
|
||||
collection_id = fields.Many2one('sheet.collection.setting', string='项目名称')
|
||||
this_issue_number = fields.Integer(string='本期数')
|
||||
|
||||
@@ -10,7 +10,8 @@ class SheetCollectionSetting(models.Model):
|
||||
|
||||
sequence = fields.Integer(string='序号')
|
||||
name = fields.Char(string='名称')
|
||||
user_role_id = fields.Many2one('soong.user.role', string="角色")
|
||||
employee_ids = fields.Many2many('hr.employee', string='员工')
|
||||
user_role_ids = fields.Many2many('soong.user.role', string="角色")
|
||||
start_date = fields.Date(string="生效日期", default=fields.Datetime.today())
|
||||
end_date = fields.Date(string="失效日期")
|
||||
is_enable = fields.Boolean(string="是否启用", compute="compute_is_enable")
|
||||
@@ -26,6 +27,14 @@ class SheetCollectionSetting(models.Model):
|
||||
else:
|
||||
record.is_enable = record.start_date <= today <= record.end_date
|
||||
|
||||
@api.onchange('user_role_ids')
|
||||
def _onchange_user_role_ids(self):
|
||||
for rec in self:
|
||||
domain = ['|', ('user_role_id', 'in', rec.user_role_ids.ids),
|
||||
('user_role_ids', 'in', rec.user_role_ids.ids)]
|
||||
new_employees = self.env['hr.employee'].search(domain)
|
||||
all_employees = rec.employee_ids | new_employees
|
||||
rec.employee_ids = all_employees
|
||||
|
||||
class SummaryTableSetting(models.Model):
|
||||
_name = 'summary.table.setting'
|
||||
@@ -34,7 +43,8 @@ class SummaryTableSetting(models.Model):
|
||||
|
||||
sequence = fields.Integer(string='序号')
|
||||
name = fields.Char(string='名称')
|
||||
company_id = fields.Many2one('res.company', string="公司")
|
||||
employee_ids = fields.Many2many('hr.employee', string='员工')
|
||||
user_role_ids = fields.Many2many('soong.user.role', string="角色")
|
||||
start_date = fields.Date(string="生效日期", default=fields.Datetime.today())
|
||||
end_date = fields.Date(string="失效日期")
|
||||
is_enable = fields.Boolean(string="是否启用", compute="compute_is_enable")
|
||||
@@ -50,3 +60,11 @@ class SummaryTableSetting(models.Model):
|
||||
else:
|
||||
record.is_enable = record.start_date <= today <= record.end_date
|
||||
|
||||
@api.onchange('user_role_ids')
|
||||
def _onchange_user_role_ids(self):
|
||||
for rec in self:
|
||||
domain = ['|', ('user_role_id', 'in', rec.user_role_ids.ids),
|
||||
('user_role_ids', 'in', rec.user_role_ids.ids)]
|
||||
new_employees = self.env['hr.employee'].search(domain)
|
||||
all_employees = rec.employee_ids | new_employees
|
||||
rec.employee_ids = all_employees
|
||||
|
||||
@@ -28,13 +28,13 @@
|
||||
<sheet>
|
||||
<group col="2">
|
||||
<group>
|
||||
<field name="employee_id"/>
|
||||
<field name="company_id"/>
|
||||
<field name="department_id"/>
|
||||
<field name="employee_id" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="department_id" invisible="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="user_role_id"/>
|
||||
<field name="create_date" readonly="1"/>
|
||||
<field name="user_role_id" invisible="1"/>
|
||||
<field name="create_date" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<field name="department_id"/>
|
||||
<field name="user_role_id"/>
|
||||
<field name="account_type"/>
|
||||
<field name="create_date"/>
|
||||
<field name="create_date" readonly="1"/>
|
||||
<button name="button_put" string="发送" type="object" class="oe_highlight"
|
||||
invisible="account_type == 'ok'"/>
|
||||
<button name="open_record" type="object" string="详情" class="btn-primary"/>
|
||||
@@ -28,13 +28,13 @@
|
||||
<sheet>
|
||||
<group col="2">
|
||||
<group>
|
||||
<field name="employee_id"/>
|
||||
<field name="company_id"/>
|
||||
<field name="employee_id" invisible="1"/>
|
||||
<field name="company_id" invisible="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="user_role_id"/>
|
||||
<field name="create_date" readonly="1"/>
|
||||
<field name="department_id" invisible="1"/>
|
||||
<field name="user_role_id" invisible="1"/>
|
||||
<field name="create_date" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
<tree string="财务数据表项目配置" editable="bottom">
|
||||
<field name="sequence"/>
|
||||
<field name="name"/>
|
||||
<field name="user_role_id"/>
|
||||
<field name="employee_ids" widget="many2many_tags"/>
|
||||
<field name="user_role_ids" widget="many2many_tags"/>
|
||||
<field name="start_date"/>
|
||||
<field name="end_date"/>
|
||||
<field name="is_enable"/>
|
||||
@@ -26,7 +27,8 @@
|
||||
<tree string="信息汇总表项目配置" editable="bottom">
|
||||
<field name="sequence"/>
|
||||
<field name="name"/>
|
||||
<field name="company_id"/>
|
||||
<field name="employee_ids" widget="many2many_tags"/>
|
||||
<field name="user_role_ids" widget="many2many_tags"/>
|
||||
<field name="start_date"/>
|
||||
<field name="end_date"/>
|
||||
<field name="is_enable"/>
|
||||
|
||||
@@ -85,6 +85,7 @@ class PenaltyLineWizard(models.Model):
|
||||
('due_date', '=', penalty_start_date),
|
||||
('management_type_id.name', '=', '违约金'),
|
||||
], limit=1)
|
||||
|
||||
if penalty_receivable_id:
|
||||
penalty_lines = self.env['receivable.modify.line'].search([
|
||||
('receivable_id', '=', penalty_receivable_id.id),
|
||||
@@ -113,14 +114,14 @@ class PenaltyLineWizard(models.Model):
|
||||
else:
|
||||
current_penalty = 0
|
||||
else:
|
||||
penalty_receivable_id = self.env['property.accounts.receivable'].search([
|
||||
penalty_receivable_id1 = self.env['property.accounts.receivable'].search([
|
||||
('contract_id', '=', receivable.contract_id.id),
|
||||
('due_date', '=', pay_date.replace(day=1)),
|
||||
('management_type_id.name', '=', '违约金'),
|
||||
], limit=1)
|
||||
if penalty_receivable_id:
|
||||
days_overdue = (pay_date - penalty_receivable_id.due_date).days + 1
|
||||
current_penalty = penalty_receivable_id.original_amount
|
||||
if penalty_receivable_id1:
|
||||
days_overdue = (pay_date - penalty_receivable_id1.due_date).days + 1
|
||||
current_penalty = penalty_receivable_id1.original_amount
|
||||
else:
|
||||
days_overdue = 0
|
||||
current_penalty = 0
|
||||
@@ -146,6 +147,16 @@ class PenaltyLineWizard(models.Model):
|
||||
'remake': pay_remake,
|
||||
}))
|
||||
|
||||
# 未支付的违约金(静态)
|
||||
if not penalty_receivable_id.payout_date and penalty_receivable_id:
|
||||
new_penalty_lines.append((0, 0, {
|
||||
'date': penalty_receivable_id.due_date_end,
|
||||
'remake': f'未交违约金',
|
||||
'days_overdue': (penalty_receivable_id.due_date_end - penalty_receivable_id.due_date).days + 1,
|
||||
'remaining_principal': 0,
|
||||
'penalty': penalty_receivable_id.submitted,
|
||||
}))
|
||||
|
||||
self.penalty_line_ids = new_penalty_lines
|
||||
self.pay_line_ids = new_pay_lines
|
||||
|
||||
|
||||
@@ -523,7 +523,7 @@ class PropertyReconciliationWizard(models.Model):
|
||||
management_type_id = self.env['yuthon.management.type'].search([('name', '=', '违约金')])
|
||||
if line.collection_type == 'penalty':
|
||||
penalty_date = line.due_date
|
||||
first_day_of_last_month = (penalty_date.replace(day=1) - relativedelta(days=1)).replace(day=1)
|
||||
first_day_of_last_month = penalty_date.replace(day=1) - relativedelta(months=2)
|
||||
# 上个月最后一天:当前月第一天减1天
|
||||
last_day_of_last_month = penalty_date.replace(day=1) - relativedelta(days=1)
|
||||
is_create = self.env['property.reconciliation.line'].search([
|
||||
@@ -557,7 +557,7 @@ class PropertyReconciliationWizard(models.Model):
|
||||
extract_start_date = datetime.strptime(extract_start_date, "%Y-%m-%d").date()
|
||||
extract_end_date = datetime.strptime(extract_end_date, "%Y-%m-%d").date()
|
||||
reconciliation_id = self.env['property.reconciliation.line'].search(domain2, limit=1)
|
||||
self.env['property.accounts.receivable'].create({
|
||||
receivable_id = self.env['property.accounts.receivable'].create({
|
||||
'is_reconciliation': is_reconciliation,
|
||||
'due_date': extract_start_date,
|
||||
'due_date_end': extract_end_date,
|
||||
@@ -582,15 +582,18 @@ class PropertyReconciliationWizard(models.Model):
|
||||
'bank_id': rec.bank_id.id if line.amount != 0 else None,
|
||||
'reconciliation_time': fields.Datetime.now(),
|
||||
})
|
||||
self.env['receivable.modify.line'].create({
|
||||
'bank_id': rec.bank_id.id,
|
||||
'not_collected': line.rent,
|
||||
'is_write': True if line.amount != 0 else False,
|
||||
'is_penalty': True,
|
||||
'reconciliation_date': rec.actual_date if line.amount != 0 else None,
|
||||
'receivable_id': existing_record.id,
|
||||
'amount': line.amount,
|
||||
})
|
||||
|
||||
if existing_record:
|
||||
receivable_id = existing_record.id
|
||||
self.env['receivable.modify.line'].create({
|
||||
'bank_id': rec.bank_id.id,
|
||||
'not_collected': line.rent,
|
||||
'is_write': True if line.amount != 0 else False,
|
||||
'is_penalty': True,
|
||||
'reconciliation_date': rec.actual_date if line.amount != 0 else None,
|
||||
'receivable_id': receivable_id.id,
|
||||
'amount': line.amount,
|
||||
})
|
||||
|
||||
rec.amount_been_reconciled += line.amount
|
||||
yes_amount += line.amount
|
||||
|
||||
Reference in New Issue
Block a user