diff --git a/bross_bank_management/models/bank_transactions.py b/bross_bank_management/models/bank_transactions.py index d10a794..aa5b4f1 100644 --- a/bross_bank_management/models/bank_transactions.py +++ b/bross_bank_management/models/bank_transactions.py @@ -22,6 +22,7 @@ class BrosseBankTransactions(models.Model): _name = 'brosse.bank.transactions' _description = 'Bank Transactions' _rec_name = 'document_number' + _order = 'create_date desc' movement_id = fields.Char(string='Movement ID') external_payment_id = fields.Char(string='External Payment ID') @@ -109,3 +110,12 @@ class BrosseBankTransactions(models.Model): 'amount': rec.amount, 'exchange_rate': rec.exchange_rate, }) + + def create(self, vals): + res = super(BrosseBankTransactions, self).create(vals) + all_patterns = self.env['hms.payment.categories.regex'].search([]) + for pattern in all_patterns: + matching_transaction = pattern.search_transactions_with_wallet_and_domestic(pattern.regex, res) + if matching_transaction: + res.write({'category_id': pattern.category_id.id}) + return res \ No newline at end of file diff --git a/bross_bank_management/models/transactions_regex.py b/bross_bank_management/models/transactions_regex.py index 75196ad..e7b0d47 100644 --- a/bross_bank_management/models/transactions_regex.py +++ b/bross_bank_management/models/transactions_regex.py @@ -12,9 +12,8 @@ class PaymentCategoriesRegex(models.Model): regex = fields.Char('Regex', required=True) category_id = fields.Many2one(comodel_name="hms.payment.categories", string="Category") - def search_transactions_with_wallet_and_domestic(self, regex_patern): + def search_transactions_with_wallet_and_domestic(self, regex_patern, transactions): pattern = re.compile(regex_patern, re.IGNORECASE) - transactions = self.env['brosse.bank.transactions'].search([('manually_assigned', '!=', True)]) matching_transactions = [] for transaction in transactions: @@ -28,7 +27,8 @@ class PaymentCategoriesRegex(models.Model): def write(self, vals): res = super(PaymentCategoriesRegex, self).write(vals) - matching_transactions = self.search_transactions_with_wallet_and_domestic(self.regex) + transactions = self.env['brosse.bank.transactions'].search([('manually_assigned', '!=', True)]) + matching_transactions = self.search_transactions_with_wallet_and_domestic(self.regex, transactions) for transaction in matching_transactions: transaction.write({'category_id': self.category_id.id})