Merge branch 'master' into dev_zhou

# Conflicts:
#	yuthon_property/wizard/property_statements_wizard.py
This commit is contained in:
李鹏宇
2026-03-26 12:05:04 +08:00
3 changed files with 41 additions and 5 deletions
@@ -13,7 +13,7 @@ class ExtendedVacationApproval(models.Model):
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_extended_code'))
users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id)
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
company_id = fields.Many2one('res.company', string="公司", related='users_id.company_id', store=True, readonly=True)
company_id = fields.Many2one('res.company', '公司', default=lambda self: self.env.user.company_id)
employee_ids = fields.Many2many('hr.employee', string="假期顺延人员")
type_vacations_ids = fields.Many2many('extended.type', string="假期类型")
is_issues = fields.Boolean(string='是否上会')
@@ -47,7 +47,8 @@
<field name="type_vacations_ids" widget="many2many_tags"/>
<field name="department_id" invisible="1"/>
<field name="date_postponed"/>
<field name="employee_ids" widget="many2many_tags" domain="[('company_id', '=', context.get('company_id'))]"/>
<field name="company_id" invisible="1"/>
<field name="employee_ids" widget="many2many_tags" domain="[('company_id', '=', company_id)]"/>
</group>
</group>
<group string="延长明细">
@@ -62,6 +62,8 @@ class PropertyStatementsWizard(models.Model):
self.property_bank_statements_ms_data(row)
elif self.selection_bank == 'gs':
self.property_bank_statements_gc_data(row)
# elif self.selection_bank == 'xy':
# self.property_bank_statements_xy_data(row)
count_after = self.env['property.bank.statements'].search_count([])
_logger.info('[银行流水导入] 银行=%s 导入前总条数=%d 导入后总条数=%d 新增=%d', self.selection_bank, count_before, count_after, count_after - count_before)
@@ -357,7 +359,6 @@ class PropertyStatementsWizard(models.Model):
else:
existing_record.write(bank_data)
def property_bank_statements_gc_data(self, row):
"""工商银行(兴源)解析:数据从第2行开始,列结构(共34列):
0:交易时间, 1:对方单位, 2:摘要, 4:转入金额(贷时取), 7:借贷标志,
@@ -429,6 +430,41 @@ class PropertyStatementsWizard(models.Model):
else:
existing_record.write(bank_data)
# def property_bank_statements_gc_data(self, row):
# """工商银行(原始格式)解析"""
# if row[0].value:
# start_time = datetime.strptime(row[0].value, '%Y-%m-%d %H:%M:%S')
# else:
# start_time = None
# name = row[4].value
# name_account = row[1].value
# remake = row[2].value
# original_amount = row[3].value
# your_own_account = row[6].value
# cleaned_amount = str(original_amount).replace(',', '')
# float_amount = float(cleaned_amount)
# your_own_unit = self.classify_by_last_four(your_own_account)
# company_id = self._get_company_by_unit(your_own_unit)
# if not company_id:
# return
# sequence_number = row[5].value
# bank_data = {
# 'name': name,
# 'your_own_unit': your_own_unit,
# 'original_amount': float_amount,
# 'company_id': company_id.id,
# 'sequence_number': sequence_number,
# 'start_time': start_time - timedelta(hours=8) if start_time else False,
# 'your_own_account': your_own_account,
# 'name_account': name_account,
# 'remake': remake,
# }
# existing_record = self.env['property.bank.statements'].search(
# [('sequence_number', '=', sequence_number)], limit=1
# )
# if not existing_record:
# self.env['property.bank.statements'].create(bank_data)
def _get_company_by_unit(self, unit_name):
"""根据账号单位返回对应公司"""
if unit_name in ['天河投资', '天投城建']:
@@ -441,7 +477,7 @@ class PropertyStatementsWizard(models.Model):
def classify_by_last_four(self, input_str):
if not isinstance(input_str, str) or len(input_str) < 4:
return "天投城建"
return "天投城建" # 输入不是字符串或长度不足4,默认为天投城建
last_four = input_str[-4:] # 获取后四位字符
@@ -452,5 +488,4 @@ class PropertyStatementsWizard(models.Model):
elif last_four == "9661":
return "天河粮储"
else:
last_four == ""
return "天投城建"