diff --git a/yuthon_property/models/yuthon_resource_mgmt_config.py b/yuthon_property/models/yuthon_resource_mgmt_config.py
index 3e8e54b5e..95980bd72 100644
--- a/yuthon_property/models/yuthon_resource_mgmt_config.py
+++ b/yuthon_property/models/yuthon_resource_mgmt_config.py
@@ -110,6 +110,7 @@ class YuthonPropertyCompany(models.Model):
phone = fields.Char(string='电话')
rent_account = fields.Char(string="收租公司账号")
start_data = fields.Date(string="开始日期")
+ company_id = fields.Many2one('res.company', string="上级公司")
end_data = fields.Date(string="结束日期")
kingdee_company_id = fields.Char(string="金蝶云物业公司id")
diff --git a/yuthon_property/views/yuthon_resource_mgmt_config_views.xml b/yuthon_property/views/yuthon_resource_mgmt_config_views.xml
index a5e93aa57..e9450c34a 100644
--- a/yuthon_property/views/yuthon_resource_mgmt_config_views.xml
+++ b/yuthon_property/views/yuthon_resource_mgmt_config_views.xml
@@ -184,6 +184,7 @@
+
diff --git a/yuthon_property/wizard/property_statements_wizard.py b/yuthon_property/wizard/property_statements_wizard.py
index e2b97895d..a345a374b 100644
--- a/yuthon_property/wizard/property_statements_wizard.py
+++ b/yuthon_property/wizard/property_statements_wizard.py
@@ -13,7 +13,7 @@ class PropertyStatementsWizard(models.Model):
_name = 'property.statements.wizard'
_description = '银行流水向导弹窗'
- selection_bank = fields.Selection([('js', '建设银行'), ('gs', '工商银行'), ('ms', '民生'), ('zc', '广州银行(中城)'), ('dj', '农商行(东进)')], string="选择银行")
+ selection_bank = fields.Selection([('js', '建设银行'), ('gs', '工商银行'), ('ms', '民生'), ('zc', '广州银行(中城)'), ('dj', '农商行(东进)')], string="选择银行", default='js')
excel_file = fields.Binary(string="上传Excel表")
excel_name = fields.Char(string="文件名")
@@ -86,39 +86,37 @@ class PropertyStatementsWizard(models.Model):
}
def property_bank_statements_jh_data(self, row):
- your_own_account = row[0].value
- if row[1].value:
- start_time = datetime.strptime(row[2].value, '%Y%m%d %H:%M:%S')
- else:
- start_time = None
- if row[3].value:
- original_amount = float(row[3].value)
+ your_own_account = row[11].value
+ start_time = None
+ if row[0].value:
+ time_str = str(row[0].value).strip()
+ dt = datetime.strptime(time_str, '%Y%m%d %H:%M:%S')
+ dt = dt - timedelta(hours=8)
+ start_time = fields.Datetime.to_string(dt)
+
+ if row[2].value:
+ original_amount = float(row[2].value)
lending_direction = 'borrow'
- elif row[4].value:
- original_amount = float(row[4].value)
+ elif row[3].value:
+ original_amount = float(row[3].value)
lending_direction = 'loan'
- name_account = row[7].value
- name = row[8].value
- bank_branch = row[9].value
- remake = row[12].value
- extract = row[11].value
- serial_number = row[13].value
- your_own_unit = self.classify_by_last_four(your_own_account)
- if your_own_unit in ['天河投资', '天投城建']:
- company_id = self.env['res.company'].search([('name', '=', '集团本部')], limit=1)
- elif your_own_unit in ['天河物管']:
- company_id = self.env['res.company'].search([('name', '=', '天河物管')], limit=1)
- elif your_own_unit in ['天河粮储']:
- company_id = self.env['res.company'].search([('name', '=', '天河粮储')], limit=1)
+ name_account = row[1].value
+ name = row[6].value
+ bank_branch = row[7].value
+ remake = row[5].value
+ extract = row[4].value
+ your_own_unit = self.classify_by_last_four(your_own_account).referred
+ company_id = self.env['res.company'].search([('name', '=', '集团本部')], limit=1)
+ if your_own_unit:
+ company_id = self.classify_by_last_four(your_own_account).company_id
bank_data = {
'name': name,
- 'serial_number': serial_number,
'your_own_unit': your_own_unit,
'no_amount': original_amount,
'company_id': company_id.id,
'bank_branch': bank_branch,
'original_amount': original_amount,
- 'start_time': start_time - timedelta(hours=8),
+ 'start_time': start_time,
'your_own_account': your_own_account,
'extract': extract,
'name_account': name_account,
@@ -126,12 +124,10 @@ class PropertyStatementsWizard(models.Model):
'lending_direction': lending_direction
}
existing_record = self.env['property.bank.statements'].search(
- [('serial_number', '=', serial_number)], limit=1
+ [('start_time', '=', start_time)], limit=1
)
if not existing_record:
self.env['property.bank.statements'].create(bank_data)
- else:
- existing_record.write(bank_data)
def property_bank_statements_sh_data(self, row):
your_own_account = row[12].value
@@ -153,13 +149,10 @@ class PropertyStatementsWizard(models.Model):
extract = row[10].value
serial_number = row[0].value
lending_direction = lending_direction
- your_own_unit = self.classify_by_last_four(your_own_account)
- if your_own_unit in ['天河投资', '天投城建']:
- company_id = self.env['res.company'].search([('name', '=', '集团本部')], limit=1)
- elif your_own_unit in ['天河物管']:
- company_id = self.env['res.company'].search([('name', '=', '天河物管')], limit=1)
- elif your_own_unit in ['天河粮储']:
- company_id = self.env['res.company'].search([('name', '=', '天河粮储')], limit=1)
+ your_own_unit = self.classify_by_last_four(your_own_account).referred
+ company_id = self.env['res.company'].search([('name', '=', '集团本部')], limit=1)
+ if your_own_unit:
+ company_id = your_own_unit.company_id
bank_data = {
'name': name,
'serial_number': serial_number,
@@ -432,41 +425,6 @@ 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 property_bank_statements_xy_data_openpyxl(self, row):
"""工商银行(兴源)openpyxl版本解析,row为元组,列结构:
0:交易时间, 1:对方单位, 2:摘要, 4:转入金额(贷时取), 7:借贷标志,
@@ -554,13 +512,13 @@ class PropertyStatementsWizard(models.Model):
company_config = self.env['yuthon.property.company'].sudo().search(
[('rent_account', '=', account)], limit=1
)
- if company_config and company_config.referred:
- return company_config.referred
+ if company_config:
+ return company_config
# 兼容旧逻辑:账号后四位模糊匹配
last_four = account[-4:] if len(account) >= 4 else ''
company_config = self.env['yuthon.property.company'].sudo().search(
[('rent_account', 'like', last_four)], limit=1
)
- if company_config and company_config.referred:
- return company_config.referred
+ if company_config:
+ return company_config
return ''
\ No newline at end of file
diff --git a/yuthon_property/wizard/property_statements_wizard_views.xml b/yuthon_property/wizard/property_statements_wizard_views.xml
index dd3762668..f3c2e5d35 100644
--- a/yuthon_property/wizard/property_statements_wizard_views.xml
+++ b/yuthon_property/wizard/property_statements_wizard_views.xml
@@ -16,15 +16,9 @@