diff --git a/yuthon_property/models/property_bank_statements.py b/yuthon_property/models/property_bank_statements.py index 782f501ca..962dcd790 100644 --- a/yuthon_property/models/property_bank_statements.py +++ b/yuthon_property/models/property_bank_statements.py @@ -12,6 +12,7 @@ class PropertyBankStatements(models.Model): _description = '银行流水' name = fields.Char('对方账号') + serial_number = fields.Char('交易流水号') company_id = fields.Many2one('yuthon.property.company', string="收款账户") sequence_number = fields.Char('顺序号') your_own_account = fields.Char('本方账号') @@ -30,6 +31,8 @@ class PropertyBankStatements(models.Model): contract_account = fields.Char(string="合同累计应收") contract_penalty = fields.Char(string="合同累计违约金") original_amount = fields.Float(string='交易金额') + yes_amount = fields.Float(string='已对') + no_amount = fields.Float(string='未对') is_reconciliation = fields.Boolean('是否已对账') voucher_type = fields.Selection([('electronic_transfer', '电子转账凭证'), ('telegraphic_transfer', '电汇凭证')], string='凭证种类') remake = fields.Text('备注') diff --git a/yuthon_property/views/property_bank_statements_views.xml b/yuthon_property/views/property_bank_statements_views.xml index 031ab6c59..3d45115b6 100644 --- a/yuthon_property/views/property_bank_statements_views.xml +++ b/yuthon_property/views/property_bank_statements_views.xml @@ -45,6 +45,7 @@ + @@ -56,6 +57,8 @@ + + diff --git a/yuthon_property/wizard/property_statements_wizard.py b/yuthon_property/wizard/property_statements_wizard.py index 7d231491e..8b8fe6e5c 100644 --- a/yuthon_property/wizard/property_statements_wizard.py +++ b/yuthon_property/wizard/property_statements_wizard.py @@ -46,15 +46,19 @@ class PropertyStatementsWizard(models.Model): sequence_number = row[5].value bank_data = { 'name': name, - 'your_own_unit':your_own_unit, + 'your_own_unit': your_own_unit, 'original_amount': float_amount, 'sequence_number': sequence_number, 'start_time': start_time, 'your_own_account': your_own_account, 'name_account': name_account, - 'remake':remake, + 'remake': remake, } - self.env['property.bank.statements'].create(bank_data) + 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_jh_data(self, row): your_own_account = row[0].value @@ -66,21 +70,26 @@ class PropertyStatementsWizard(models.Model): name_account = row[3].value name = row[4].value remake = row[5].value + serial_number = row[6].value your_own_unit = self.classify_by_last_four(your_own_account) bank_data = { 'name': name, - 'your_own_unit':your_own_unit, + 'serial_number': serial_number, + 'your_own_unit': your_own_unit, 'original_amount': original_amount, 'start_time': start_time, 'your_own_account': your_own_account, 'name_account': name_account, - 'remake':remake, + 'remake': remake, } - if original_amount: - statements = self.env['property.bank.statements'].create(bank_data) - # self._handle_contract_penalty(statements) - else: - pass + if original_amount and serial_number: + existing_record = self.env['property.bank.statements'].search( + [('serial_number', '=', serial_number)], limit=1 + ) + if not existing_record: + self.env['property.bank.statements'].create(bank_data) + elif original_amount: + self.env['property.bank.statements'].create(bank_data) def _handle_contract_penalty(self, record): '''