mirror of
				https://github.com/brain-tec/account_ebics.git
				synced 2025-11-03 22:50:59 +00:00 
			
		
		
		
	Merge branch '17-imp-account-matching' into '17.0'
[IMP]account_ebics_oca_statement_import - match journal See merge request Noviat/Noviat_Generic/accounting-ebics!65
This commit is contained in:
		@@ -4,7 +4,7 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "name": "account_ebics with OCA Bank Statement Imoort",
 | 
					    "name": "account_ebics with OCA Bank Statement Imoort",
 | 
				
			||||||
    "summary": "Use OCA Bank Statement Import with account_ebics",
 | 
					    "summary": "Use OCA Bank Statement Import with account_ebics",
 | 
				
			||||||
    "version": "17.0.1.0.0",
 | 
					    "version": "17.0.1.0.1",
 | 
				
			||||||
    "author": "Noviat",
 | 
					    "author": "Noviat",
 | 
				
			||||||
    "website": "https://www.noviat.com",
 | 
					    "website": "https://www.noviat.com",
 | 
				
			||||||
    "category": "Hidden",
 | 
					    "category": "Hidden",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,12 +6,44 @@ from datetime import date, datetime
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
from odoo import _, models
 | 
					from odoo import _, models
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from odoo.addons.base.models.res_bank import sanitize_account_number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_logger = logging.getLogger(__name__)
 | 
					_logger = logging.getLogger(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AccountStatementImport(models.TransientModel):
 | 
					class AccountStatementImport(models.TransientModel):
 | 
				
			||||||
    _inherit = "account.statement.import"
 | 
					    _inherit = "account.statement.import"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def _match_journal(self, account_number, currency):
 | 
				
			||||||
 | 
					        journal = self.env["account.journal"]
 | 
				
			||||||
 | 
					        sanitized_account_number = self._sanitize_account_number(account_number)
 | 
				
			||||||
 | 
					        fin_journals = self.env["account.journal"].search(
 | 
				
			||||||
 | 
					            [
 | 
				
			||||||
 | 
					                ("type", "=", "bank"),
 | 
				
			||||||
 | 
					                "|",
 | 
				
			||||||
 | 
					                ("currency_id", "=", currency.id),
 | 
				
			||||||
 | 
					                ("company_id.currency_id", "=", currency.id),
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        fin_journal = fin_journals.filtered(
 | 
				
			||||||
 | 
					            lambda r: sanitized_account_number
 | 
				
			||||||
 | 
					            in (r.bank_account_id.sanitized_acc_number or "")
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        if len(fin_journal) == 1:
 | 
				
			||||||
 | 
					            journal = fin_journal
 | 
				
			||||||
 | 
					        if not journal:
 | 
				
			||||||
 | 
					            journal = super()._match_journal(account_number, currency)
 | 
				
			||||||
 | 
					        return journal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def _sanitize_account_number(self, account_number):
 | 
				
			||||||
 | 
					        sanitized_number = sanitize_account_number(account_number)
 | 
				
			||||||
 | 
					        check_curr = sanitized_number[-3:]
 | 
				
			||||||
 | 
					        if check_curr.isalpha():
 | 
				
			||||||
 | 
					            all_currencies = self.env["res.currency"].search([])
 | 
				
			||||||
 | 
					            if check_curr in all_currencies.mapped("name"):
 | 
				
			||||||
 | 
					                sanitized_number = sanitized_number[:-3]
 | 
				
			||||||
 | 
					        return sanitized_number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _check_parsed_data(self, stmts_vals):
 | 
					    def _check_parsed_data(self, stmts_vals):
 | 
				
			||||||
        """Basic and structural verifications"""
 | 
					        """Basic and structural verifications"""
 | 
				
			||||||
        if self.env.context.get("active_model") == "ebics.file":
 | 
					        if self.env.context.get("active_model") == "ebics.file":
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user